목록분류 전체보기 (518)
개발놀이터
자바에서 제네릭(generic)이란 데이터 타입을 일반화한다(generalize)는 것을 의미한다. 제네릭은 클래스나 메소드에서 사용할 내부 데이터 타입을 컴파일 시에 미리 지정하는 방법이다. 이렇게 컴파일시에 미리 타입 검사를 수행하면 다음과 같은 장점을 지닌다. 1. 클래스나 메소드 내부에서 사용되는 객체의 타입 안정성을 높일 수 있다. 2. 반환값에 대한 타입 변환 및 타입 검사에 들어가는 노력을 줄일 수 있다. *제네릭의 선언 및 생성 자바에서 제네릭은 클래스와 메소드에만 다음과 같은 방법으로 선언할 수 있다. class MyArray { T element; void setElement(T element) { this.element = element; } T getElement() { return..
*인터페이스 자식 클래스가 여러 부모 클래스를 상속받을 수 있다면, 다양한 동작을 수행할 수 있다는 장점을 가지게 된다. 하지만 클래스를 이용하여 다중 상속을 할 경우 메소드 출처의 모호성 등 여러가지 문제가 발생할 수 있어 자바에서는 클래스를 통한 다중 상속은 지원하지 않는다. 하지만 다중 상속의 이점을 버릴 수는 없기에 자바에서는 인터페이스라는 것을 통해 다중 상속을 지원하고 있다. 인터페이스란 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상클래스를 의미한다. 자바에서 추상 클래스는 추상 메소드뿐만 아니라 생성자, 필드, 일반 메소드도 포함할 수 있다. 하지만 인터페이스는 오로지 추상 메소드와 상수만을 포함할 수 있다. *인터페이스의..
*추상 메소드 추상 메소드란 자식 클래스에서 반드시 오버라이딩 해야만 사용할 수 있는 메소드를 의미한다. 자바에서 추상 메소드를 선언하여 사용하는 목적은 추상 메소드가 포함된 클래스를 상속받는 자식 클래스가 반드시 추상 메소드를 구현하도록 하기 위함이다. 예를 들면 모듈처럼 중복되는 부분이나 공통적인 부분은 미리 다 만들어진 것을 사용하고, 이를 받아 사용하는 쪽에서는 자신에게 필요한 부분만을 재정의하여 사용함으로써 생산성이 향상되고 배포 등이 쉬워지기 때문이다. 이러한 추상 메소드는 선언부만이 존재하며, 구현부는 작성되어 있지 않는다. 바로 이 작성되어 있지 않은 구현부를 자식 클래스에서 오버라이딩하여 사용하는 것이다. 자바에서 추상 메소드는 다음과 같은 문법으로 선언한다. abstract 반환타입 메..
1. 커스텀 태그의 장점 ①재사용 : 한 번 작성한 커스텀 태그는 어떤 JSP 컨테이너에서도 사용 가능하다. ②쉽고 단순한 JSP 코드 작성 : 자바 코드에 익숙하지 않은 개발자들도 커스텀 태그를 사용하면 쉽게 JSP 페이지를 작성할 수 있게 된다. 예를 들어 JSTL 과 EL을 사용하는 것이 스크립트 코드만 사용하기보다 쉽다. ③코드 가독성 향상 : 커스텀 태그는 뚜렷한 의도를 갖고, 커스텀 태그를 사용하면 스크립트코드를 줄일 수 있기 때문에 JSP코드의 가독성을 높일 수 있다. 2. 커스텀태그 사용하기 ①WEB-INF파일 아래 원하는 이름으로 파일을 짓는다. ②파일아래 .tag확장자로 jsp파일을 만든다 ③맨위에 를 적는다. ④커스텀 태그를 사용할 페이지에 을 선언해준다. ⑤사용할 페이지에서 을 쓰면..
발단 1. 이클립스로 토글버튼을 부트스트랩을 이용하여 만듦 = 잘됨 2. FTP를 이용해 호스팅 3. 도메인으로 타고 들어간 결과 이벤트가 먹통이됨 이벤트가 되던게 안된다는것은 자바스크립트나 제이쿼리를 서버가 인식하지 못하고있다는것 처음에는 내가 사용하고 있는 제이쿼리 방식이 CDN방식이기 때문에 서버에서 url을 잡아내지 못한다고 판단, 제이쿼리 파일을 직접 다운받아 폴더에 집어넣고 서버에 올린 후 실행 = 역시나 먹통 해결책 의외로 간단한 곳에서 문제가 생긴 것이었다. 바로 제이쿼리랑 자바스크립트를 선언해주는 스크립트태그가 맨 아래 있어서 그랬던것 ㄷㄷ...어디선가 jsp파일을 실행할 때 구동 순서가 html > jsp > javascript 라고 들어서 를 맨아래 쓴다는 것이 생각나서 그냥 스크립트..
이걸로 몇시간을 소모했는지 모르겠다 참.. 이클립스에서 실행했을 때는 잘 작동하던게 도메인만 입력하면 NullPointerException이 떠서 굉장히 곤란했다. 양쪽 다 안되면 이클립스에가서 System.out.println으로 Null값을 찾아가면서 하면 되는데 이클립스에선 또 되니까 어떻게 해결할 방법도 막막해서 답답하던 찰나 의심가는 부분을 발견했다. 바로 Connection객체인데 DriverManager.getConnection 부분이 null값으로 의심되는 정황이 발견되었다. 알고보니 드라이버부분에 jdbc:mysql://localhost:3306/* 이자리에 cafe24 아이디를 적어야하는것이었다. 굉장히 황당하면서 어이없게 해결된 오류였다. 나와 비슷한 문제를 겪고있을 다른 사람을 위해..
이 오류가 뜬건 FTP로 웹 호스팅을 해보려다가 파일질라에 파일들을 다 쑤셔넣고 도메인을 치고 들어갔을 때 발생한 오류이다. 처음에는 java.lang.UnsupportedClassVersionError: Data/database라는 문구만 나와서 당황했는데 가끔가다 오류내용이 풀로 나와서 구글링 해보았다. 문제는 자바 런타임 버젼이 너무 높아서 (최신버젼이라) 인식을 못한다는것이었다. 이를 해결하기 위해선 몇가지 맞춰야하는 것들이 있다. 1. jdk버전 + 환경변수설정 2. 해당 프로젝트의 build path의 JRE 시스템 라이브러리 3. 마지막으로 해당 프로젝트 Properties에 들어갔을 때 보이는 Project Facets의 Java 버전 확인 먼저 오류문을 해석해보면 너는 지금 클래스파일 버..
#1 글을 작성하고 블로그를 관리해보세요. 마늘냄새폴폴님의 회원 가입을 진심으로 축하합니다. 이 글은 비공개로 작성돼 있습니다. '편집'으로 내용을 바꾸시거나, 삭제 후 '새 글을 작성'하셔도 됩니다. 글 뿐만 아니라 블로그의 각종 설정을 변경할 수도 있습니다. '블로그관리'를 확인해보세요. #2 다양한 스킨이 있어요. 티스토리에 있는 다양한 '스킨'도 살펴 보세요. 블로그나 사이트를 사용하는 목적에 맞게 스킨을 고를 수 있습니다. 어떤 이야기를 주로 하실 건가요? 잘 생각해 보시고, 마음에 드는 스킨을 고르세요. '스킨 편집'을 통해 다양한 커스텀, 그리고 홈 꾸미기를 적용하실 수도 있답니다. #3 포럼에서 사람들과 소통하세요. 마지막으로 사용하시다가 티스토리에 대해 궁금한 내용이 있다면 '포럼'을 확..