본문 바로가기

전체 글

(47)
Caused by: org.xml.sax.SAXParseException: Element type "if" must be declared. iBatis와 myBatis의 동적 쿼리 문법 차이에서 발생하는 오류이다. ## myBatis AND USER_NAME = #{userName} =============================== ## iBatis AND USER_NAME = #userName#
이클립스 디버깅 하는 법 Break Point 확인하고 싶은 곳에 break point를 찍는다. 서버를 debug 모드로 돌린다. 해당 페이지의 로직을 타는 페이지로 들어가면 찍어놨던 break point에 걸려 있는 것을 확인할 수 있다. Debug Mode Window의 Perspective에서 Debug를 눌러 Debug 모드로 전환한다. Variables는 변수에 담겨있는 값을 확인할 때 사용한다. Breakpoints는 지정한 break point들을 확인할 때 사용한다. Expressions는 객체의 특정 요소나 연산 등을 통해 값을 확인할 때 사용한다. 단축키 F5는 해당 break point에 있는 객체 등의 내용을 더 자세히 확인할 수 있다. F6은 다음 내용으로 한 줄씩 이동한다. F7은 리턴 키라는데 뭔지는..
java.lang.OutOfMemoryError: Java heap space 서버 구동 시, 힙 메모리가 부족할 때 발생하는 오류 해결방법 1. -XX:MaxPermSize=128m -Xms128m -Xmx512m 를 Edit launch configuration properties의 Arguments에 추가한다. 2. -XX:MaxPermSize=128m"은 Java 7 이전의 버전에서 사용되었던 옵션으로, Permanent Generation의 최대 크기를 128MB로 설정한다. 3. -Xms128m : 초기 힙 크기를 128메가바이트로 설정한다. 4. -Xmx512m : 최대 힙 크기를 512메가바이트로 설정한다. XX:MaxMetaspaceSize : 자바 8부터 Metaspace의 최대 크기를 설정할 수 옵션
Errors running builder 'Integrated External Tool Builder' on project 'xxx'. Errors running builder 'Integrated External Tool Builder' on project 'xxx'. org.eclipse.core.runtime.CoreException: The builder launch configuration could not be found. at org.eclipse.core.externaltools.internal.ExternalToolsCore.newError(ExternalToolsCore.java:114) at org.eclipse.core.externaltools.internal.model.ExternalToolBuilder.build(ExternalToolBuilder.java:78) at org.eclipse.core.interna..
접근 제한자 복습!! 접근 제한자는 총 4개가 있다. public : 외부 클래스가 자유롭게 사용할 수 있다. protected : 같은 패키지나 자식 클래스에서 사용할 수 있다. default : 같은 패키니 내에서만 사용할 수 있다. (아무런 접근 제한자를 쓰지 않으면 기본값으로 default가 들어간다.) private : 외부에서 사용할 수 없다. 접근성 순으로 보면 public > protected > default > private
Target runtime Apache Tomcat v7.0(2) is not defined 실행 환경 서버로 특정된 Apache Tomcat v7.0(2)을 정의할 수 없다. 즉, 찾을 수 없다는 뜻이다. 나의 경우 서버를 Apache Tomcat v7.0으로 설정했는데 이클립스 내에서 Apache Tomcat v7.0(2) 서버를 바라보고 있기 때문에 나는 오류였다. Project Facets의 Runtime을 살펴보면 다른 서버를 참조하고 있을 것이다. 여기서 설정한 서버로 돌려주면 해결된다.
Serializable 인터페이스란? 자바에서 Serializable 인터페이스는 객체를 직렬화할 때 사용된다. 직렬화는 객체를 바이트 스트림으로 변환하여 저장하거나 네트워크를 통해 전송할 수 있게 하는 것이다. Serializable 인터페이스를 구현한 클래스의 객체는 객체의 상태를 저장하고 다시 복원할 수 있기 때문에 이를 통해 객체를 파일에 저장하거나 네트워크를 통해 전송할 때 객체의 상태를 보존할 수 있다. 예를 들어, 네트워크를 통해 객체를 전송하거나 데이터베이스에 저장할 때 유용하게 쓸 수 있다.
레거시 코드 파악하는 법 테스트 케이스 작성을 많이 하자. 비즈니스 로직을 처리하는 Service 단을 많이 살펴보자. 이해한 부분은 주석을 달자. 리팩토링을 해보자. 알아본 내용을 문서화 하자. 코드 한 줄 한 줄을 이해하고 넘어가자. 레거시 코드들은 퀴리로 로직을 처리하는 경우가 많으므로 해당 서비스의 DB 쿼리와 테이블에 대한 이해도도 중요하다.