일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 생성자 주입
- assertThrows
- 필드 주입
- 싱글톤
- 스프링 부트 기본
- SQL
- 스프링
- mybatis
- spring
- db
- Effective Java
- DI
- 스프링 빈
- springboot
- JPA
- assertThat
- 스프링 부트
- 스프링 부트 입문
- resultMap
- DIP
- sqld
- kafka
- 스프링 프레임워크
- 스프링 컨테이너
- thymeleaf
- @Configuration
- jdbc
- Javascript
- 스프링부트
- java
- Today
- Total
목록Language (90)
선 조치 후 분석
프로젝트를 진행하면서, '$a'와 같이 객체를 선언해서 잘 사용하지는 않았다. 하지만 해당 제이쿼리 객체를 사용하면 비교적 편리해서 내용을 정리하게 되었다. jQuery 객체? $는 jQuery에서 매우 일반적인 사용으로 변수에 저장된 jQuery 객체를 다른 변수와 구별 jQuery가 아닐 때에도 jQuery를 사용해서 받은 것을 변수에 넣었다는 것을 표시하기 위함도 있다. jQuery 객체라는 것을 구분하기 위해서 $를 붙이는 것 // 일반적인 변수 선언 var elementId = "myElementId"; var element = document.getElementById(elementId); element.style.color = "red"; // jQuery를 사용하여 DOM 요소를 선택하고 ..
물리적 동치성 (==) → 메모리에 저장된 변수가 가지는 값(주소)이 서로 같은지 비교하는 것 → 원시타입(Primitive Type)의 객체에 대해서는 값 비교가 가능하고, 참조타입(Reference Type)에 대해서는 주소 비교 참조타입(Reference Type) 변수는 참조하는 객체의 주소 값을 가지고 있고, 원시타입(Primitive Type) 변수는 기본 타입의 값을 가지고 있다. 논리적 동치성 (equals) → 참조 타입(Reference Type) 변수를 비교하는 것 → 비교할 값을 정하고, 값을 비교하여 두 객체가 서로 동등(갖고 있는 값이 같은지)하다면, "논리적으로 같다"라고 표현 → Object 클래스의 equals()는 물리적 동치성(==)과 동일한 기능 String 클래스는 ..
자바 라이브러리에는 close 메서드를 호출해 직접 닫아줘 하는 자원이 있다. 예를 들어, InputStream, OutputStream, java.sql.Connection 등 자원 닫기는 클라이언트가 놓치기 쉬워서 예측할 수 없는 성능 문제를 야기할 수 있다. 전통적으로 자원이 제대로 닫힘을 보장하는 수단으로 try-finally 가 사용되었다. 아래 코드처럼 close를 호출하게 되면 문제가 발생하지 않는다. BufferedReader는 사용 중 IOException이 발생할 수 있는데, 만약 br.readLine() 메서드에서 Exception이 발생하게 되면 메서드는 종료되고 close는 호출되지 않고 스트림이 메모리에 남아있게 된다. public String inputString() throw..
final은 변수, 메서드, 클래스에서 선언이 가능하다. 변수에 final을 선언하면, 해당 변수는 더 이상 '재할당'이 불가능하다. 메서드에 선언하면, 해당 메서드는 '오버라이드(재정의)'가 불가능하다. 그리고 클래스에 선언하면 해당 클래스는 '상속'이 불가능하다. 즉, 부모 클래스가 될 수 없다. final을 키워드를 사용하면, '어디에서 재할당은 되지 않았는지', '값이 변하는 상황을 막기 위해 검증 로직을 추가해야 하는지' 등 불안감에서 벗어나 다른 곳에 더 집중할 수 있게 도와준다. final 변수 (final variable) final 키워드를 사용한 변수에 초기값을 설정하는 방식은 2가지 있다. 클래스 필드에 선언 및 초기화 생성자에서 초기화 final이 선언되면 변수는 상수가 된다. 상수..

Static (정적)Static 키워드를 사용하여 Static 변수와 Static 메서드를 만들 수 있다.Static 변수와 Static 메서드는 객체(인스턴스)에 소속된 멤버가 아니라, 클래스에 고정된 멤버이다.클래스 로더가 클래스를 로딩해서 '메서드 메모리' 영역에 적재할 때 클래스별로 관리된다.클래스의 로딩이 끝나는 즉시 바로 사용 가능하다.Static 멤버 생성Static 키워드를 사용해 생성된 Static 멤버(변수, 메서드)는 Heap 영역이 아닌, Static 영역에 할당된다.Static 메모리에 할당된 메모리는 모든 객체가 공유하여 하나의 멤버를 어디서든지 참조 가능하다.하지만, GC(Gabage Collector)의 관리 영역 밖에 존재하므로 static 영역에 있는 멤버들은 프로그램의 ..
자바에서 객체소멸은 GC (Gabage Collector)가 담당하고, 비 메모리 자원회수는 try-with-resources, try-finally로 해결한다. 자바에서 제공하는 2가지 객체 소멸자, finalizer와 cleaner는 기본적으로 사용하지 말아야 한다. 사용하면 안 되는 이유 finalizer : 예측할 수 없고, 위험하며, 느리고, 일반적으로 불필요하다. cleaner : finalizer보다는 덜 위험하지만 여전히 예측할 수 없고, 느리며, 보통은 불필요하다. 단점 1 - 즉시 수행된다는 보장이 없다 finalizer와 cleaner는 호출된 후 언제 실행될지 알 수 없다. 즉, 제때 실행되어야 하는 작업을 절대 할 수 없다. finalizer와 cleaner의 수행 속도는 가비지 ..