일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스프링 트랜잭션
- 자바의 정석 기초편 ch2
- 자바 기초
- 스프링 mvc1 - 스프링 mvc
- 자바의 정석 기초편 ch1
- 스프링 mvc2 - 검증
- @Aspect
- 자바의 정석 기초편 ch5
- 자바로 키오스크 만들기
- 자바의 정석 기초편 ch7
- 자바의 정석 기초편 ch11
- 자바 고급2편 - 네트워크 프로그램
- 자바의 정석 기초편 ch6
- 스프링 고급 - 스프링 aop
- 자바 고급2편 - io
- 스프링 mvc2 - 로그인 처리
- 스프링 mvc2 - 타임리프
- 람다
- 2024 정보처리기사 시나공 필기
- 데이터 접근 기술
- 자바의 정석 기초편 ch12
- 자바의 정석 기초편 ch14
- 자바의 정석 기초편 ch9
- 자바로 계산기 만들기
- 자바 중급2편 - 컬렉션 프레임워크
- 스프링 입문(무료)
- 2024 정보처리기사 수제비 실기
- 자바의 정석 기초편 ch4
- 자바의 정석 기초편 ch13
- 자바 중급1편 - 날짜와 시간
- Today
- Total
목록이론 직접 정리 (8)
개발공부기록

Bean Scope정의말 그대로 @Autowired나 @Configuration과 @Bean으로 등록한 스프링 빈이 존재할 수 있는 범위(생명 주기)를 뜻한다존재할 수 있는 범위라고하면 '등록된 빈이 등록되고 사라지는 시점의 범위가 어디인가'라고 보면 될 것 같다. 스프링 빈은 객체를 생성하고 의존관계 주입이 다 끝난 다음에 필요한 데이터를 사용할 수 있는 준비가 완료 되기 때문에 초기화 작업을 진행 해야한다. 스프링은 의존관계 주입이 완료 되면 스프링 빈에게 콜백 메서드를 통해 초기화 시점을 알려주는 다양한 기능을 제공하며 스프링 컨테이너가 종료되기 직전에 소멸 콜백(싱글톤)을 주어 안전하게 종료 작업을 진행할 수 있다 스프링 빈의 기본 생명 주기스프링 컨테이너 생성 -> 스프링 빈 생성(생성자 주입)..

IoC(Inversion of Control; 제어의 역전)좋은 객체지향 설계를 위한 방법 중 하나로 프로그램의 제어 흐름을 개발자가 아닌 프레임워크나 컨테이너가 관리하는 것을 의미한다.개발자가 프로그램의 흐름을 직접 관리하는 것이 아니라 외부 소스(프레임워크나 컨테이너)로부터 제어 흐름을 받는 방식으로 작동하며 대표적으로 스프링(Spring), Nest.js, Django 등과 같은 프레임워크가 있다. 프레임워크와 라이브러리의 차이를 설명할 때 핵심적인 내용이 바로 IoC이다 라이브러리는 개발자가 직접 원하는 시점에 해당 기술을 호출하여 사용하기 때문에 개발자가 제어권을 가지고 애플리케이션을 개발한다하지만 프레임워크는 개발자가 프레임워크라는 구조 안에서 요구하는 대로 프로그램을 구성하기 때문에 제..

자바의 예외자바는 프로그램 실행 중에 발생할 수 있는 예상치 못한 상황을 처리하기 위한 메커니즘을 제공하는게 이것이 예외(예외 객체)이다.예외처리는 프로그램의 안정성과 신뢰성을 높이는데 매우 중요한 역할을 한다. 예외가 발생하면 잡아서 처리하거나, 만약 처리할 수 없다면 밖으로 던질 수 밖에 없다. 잡아서 처리하고자 할 때는 try - catch - finally 구분을 사용하거나, Java 7에서 도입된 자동으로 외부 자원을 해제해주는 try - with - resources를 이용해서 처리할 수 있고 throws로 상위 계층으로 던질 수도 있다 계속 처리되지 않고 예외를 상위 계층으로 올라가면 결국 프로그램을 실행하는 main 메서드까지 예외가 올라가게 되고 여기서도 처리하지 못한다면 프로그램이 종료..

Shallow CopyShallow Copy(얕은 복사)객체를 복사할 때 객체가 가진 필드의 값을 그대로 복사하는 방법을 뜻한다기본 자료형의 경우 값 자체가 복사되며, 객체(참조형)의 경우 참조 주소(메모리 주소값)만 복사된다는 뜻이다특징원본 객체와 복사본 객체는 서로 다른 객체지만 객체 내부에서 참조하고 객체는 동일한 객체를 가리키게 된다.실제 데이터가 아닌 참조값만 복사하기 때문에 복사 과정이 매우 빠르다기존 객체의 데이터와 공유되기 때문에 추가적인 메모리 사용량이 매우 적어 메모리 사용이 효율적이다단점복사된 객체와 원본 객체가 내부 데이터를 공유한다는 특성을 모르고 접근할 경우 원본 데이터를 변경하면 복사된 객체도 영향을 받으므로 사이드 이펙트(side-effect) 문제가 발생할 수 있다(Muta..

Call By Value설명메서드 호출 시 인자로 전달되는 값 자체를 복사하여 넘긴다는 뜻이다즉, 원본 값은 메서드 내부로 복사되어 별도의 독립적인 변수로 사용된다기본형(primitive type)기본형 데이터(int, double, boolean 등)은 값 자체가 복사되어 전달된다.메서드 내에서 변경된 값은 원본 변수에 영향을 주지 않는다참조형(reference type)객체의 참조값(주소)가 복사되어 전달된다.메서드 내에서 참조값 자체를 바꿔 재할당 하면 원본 참조에는 영향을 주지 않는다.하지만 객체의 속성(상태)를 변경하면 같은 객체를 참조하고 있으므로 원본 객체에도 변경이 반영된다Call By Reference설명메서드 호출 시 인자의 참조(메모리 주소)를 직접 전달하는 방식이다인자의 참조 자체가..
Managed 언어정의애플리케이션 실행 시, 가상 머신(JVM, .NET CLR 등)이나 런타임 환경이 메모리 관리, 보안, 예외 처리 등 여러 작업을 대신 수행하는 언어를 뜻한다특징자동 메모리 관리가비지 컬렉터가 메모리 할당 및 해제를 자동으로 수행해 메모리 누수 가능성을 줄인다런타임 검사타입 안정성, 경계 검사 등을 통해 실행 중 오류를 미연에 방지한다보안 및 안정성관리되는 환경 덕분에 버퍼 오버플로우 같은 저수준 취약점 발생 확률이 낮다대표적인 언어Java: JVM 위에서 실행되며 자동 가비지 컬렉션을 제공한다C#: NET CLR 환경에서 동작하며 강렬한 타입 검사와 메모리 관리를 지원한다VB.NET, F#: .NET 환경의 다른 언어들도 Managed 언어 범주에 속한다Unmanaged 언어정의컴..

불변 객체란?Immutable Object(불변 객체)는 말 그대로 객체 생성 후 그 상태를 바꿀 수 없는 객체를 말한다이와 반대 개념으로 객체 생성 후 상태를 변경할 수 있는 Mutable Object(가변 객체)도 존재한다. 불변 객체는 객체의 상태를 바꿀 수 없는 단순한 제약을 사용하여 사이드 이펙트라는 큰 문제를 막을 수 있어 코드의 안정성을 높여준다.객체의 상태를 바꿀 수 없기 때문에 객체 내부의 값을 변경하는 메서드가 존재해도 실제 내부의 값을 변경하는 것이 아니라 새로운 객체를 생성해서 새로운 참조값을 반환하여 완전히 새로운 객체를 반환한다. 객체의 값을 변경할 수 없기 때문에 멀티스레드 환경에서도 안전하게 동작하는데, 불변 객체 내부에 참조하는 객체들도 모두 불변이여야 멀티스레드 환경에서 ..

Java의 final 키워드란?자바의 final 키워드는 이름 그대로 끝이라는 뜻처럼 final 키워드가 적용된 대상의 변경을 금지하여 코드의 가독성과 안전성, 유지보수성을 향상시키는 데 도움을 주는 키워드이다.final 키워드는 클래스, 메서드, 변수에 사용할 수 있다Class에 사용되는 final final 키워드가 선언된 클래스는 확장할 수 없으므로 다른 클래스가 final로 선언된 클래스를 상속받을 수 없다상속 하려고하면 IDE에서 컴파일 오류가 발생하는 것을 확인할 수 있다 컴파일 오류를 무시하고 상속하고 실행해보면 Finalclass가 final이라서 상속할 수 없다는 문구와 함께 실행이 되지 않는다 Method에 사용되는 final final로 선언된 메서드는 오버라이드 될 수 없으므로 상속..