본문 바로가기
반응형

Java4

문자열 비교 - Equals() 와 == 연산자의 차이 업무 중에 문자열 비교를 통하여 처리해야 하는 로직이 있었는데 잘 동작 하다가 어느 순간 해당 로직 안에서 무한 루프로... 때문에 DB에서 해당 테이블에 락 걸리고 난리도 아니였다. 원인을 찾아보는데 Javascript 로 열나게 처리하다가 무심결에 컨트롤러에서 똑같이 부등호로 문자열을 비교하는 코드를 집어넣었더니 해당 로직이 문자열 비교를 하지 못하게 되고 그러다 보니 내가 구현한 로직의 특성상 무한루프를 돌게 되는 것이였다. DB에서 받아온 값을 그냥 String으로 변환해서 사용하는 것이였고 때문에 결국 문제가 될 코드였다. 리터럴을 이용할 시에는 String Pool에 저장이 되고 new 연산자를 이용할 시에는 Heap 내부에 저장이 된다. 이때 == 연산자는 문자열이 저장된 주소를 비교하게 되.. 2024. 1. 9.
extends와 implements extends 상속의 대표적인 형태이며 부모의 메서드를 그대로 사용할 수 있고 Overriding 없이 부모에 구현되어 있는 메서드를 직접 사용할 수 있다. 즉, extends 뒤에 원하는 클래스를 명시하게 되면 해당 클래스의 프로퍼티와 메서드를 따로 구현할 필요없이 인스턴스에서 자유롭게 사용 가능하다. 상속의 말 그대로 부모의 것을 자식이 물려받아 사용하는 것과 같다고 보면 될 것 같다. 코드로 예를 들면 // 부모 클래스 class Parent { protected string lastName = "Jung"; public string getLastName() { return lastName; } public void setLastName(string lastName) { this.lastName =.. 2023. 8. 24.
Spring과 Spring Boot Spring Framework Java Platform을 위한 오픈소스 어플리케이션 프레임워크로서 스프링(Spring)이라고도 한다. 스프링은 동적인 웹사이트 개발을 위한 여러 서비스를 제공하고 있는데 대한민국의 공공기간 웹 서비스 개발 시에 사용되는 전자정부 프레임워크의 기반 기술로 쓰이고 있다. Spring Framework의 장점으로는 경량 컨테이너 : 기존 자바 엔터프라이즈는 불필요하게 복잡하며 무거운 서버(WAS)가 필요했으며 다루기 힘든 설정파일 구조와 패키징, 불편한 배포 등과 같은 단점이 있었고 반면 스프링은 자체가 가벼운 편은 아니나 Tomcat과 같은 단순한 서버 환경에서도 동작하고 비교적 단순한 개발환경을 가지고 있다. IoC(Invertion of Control : 제어의 역전) :.. 2023. 8. 7.
Java의 Annotation Annotations 이란? 프로그래밍 언어에는 영향을 미치지 않으면서 코드를 프로그램 및 프로그래머에게 정보를 제공. 마치 주석과 유사한 역할을 하는 것을 말한다. 주석이라는 것이 등장하기 전까지는 코드와 문서를 별도로 작성하였고 코드가 변경될 때마다 문서도 함께 변경해줘야 했다고 한다. 하지만 개발자들이 코드만 수정하고 문서는 수정하지 않는 경우가 많았고 이 때문에 코드와 문서가 일치하지 않아 소스코드를 관리하는데 어려움이 많았다고 한다. 이에 대한 해결책으로 코드와 문서를 합치기로 했고 필요한 문서 내용을 코드와 함께 주석으로 작성하고 javadoc.exe 프로그램이 코드 내 주석만 추출하여 문서를 자동으로 만들게 했다. Annotation이 등장하기 전에는 주석과 유사하게 코드와 대부분 .xml .. 2023. 8. 7.
반응형