![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/b3YZo8/btq5uvV7y1m/HiOmEx5CgdE7TcTubJL200/img.png)
Spring을 제대로 이용하기 위해서는 Spring이 갖는 기본 개념과 철학을 이해해야 한다. 이번에는 Spring에 입문하는 사람들을 위해 Spring에 대해 이해할 수 있는 내용을 작성해보고자 한다. 1. Spring에 대한 이해와 입문 Spring Framework(스프링 프레임워크)은 자바 기반의 웹 애플리케이션 개발을 위한 프레임워크이다. 스프링은 객체 지향 개발을 매우 용이하게 할 수 있도록 도와주며, 애플리케이션을 빠르고 효율적으로 개발할 수 있도록 기본 틀과 공통 프로그래밍 모델, API 등을 제공한다. 스프링 개발자라면 최소한 이 3가지 프로그래밍 모델만큼은 잘 이해하고 자유롭게 응용할 수 있어야 한다. [ 1. Spring Container(스프링 컨테이너) ] 스프링은 스프링 컨테이너..
1. 롬봄(Lombok)에 대한 이해와 활용 [ 롬봄(Lombok) 이란? ] Lombok이란 어노테이션 기반으로 코드를 자동완성 해주는 라이브러리이다. Lombok을 이용하면 Getter나 Setter, 생성자 등을 자동완성 시킬 수 있어서 개발자의 생산성을 높여준다. (Lombok에 대해 자세한 내용은 여기를 참고해주세요!) @Getter @Setter public class User { private String email; private String name; } [ @RequiredArgsConstructor ] Lombok의 다양한 어노테이션들 중에서 이번에 주목해 볼 것은 @RequiredArgsConstructor 이다. 이 어노테이션은 NotNull이거나 final이 붙은 변수들에 대해 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/6eLCk/btq5gFwQO4x/KT2qebNokRvImqLY6iKcK0/img.png)
1. Transaction(트랜잭션)에 대한 이해 [ 트랜잭션(Transaction)의 필요성 ] 만약 데이터베이스의 데이터를 수정하는 도중에 예외가 발생된다면 어떻게 해야 할까? DB의 데이터들은 수정이 되기 전의 상태로 다시 되돌아가져야 하고, 다시 수정 작업이 진행되어야 할 것이다. 이렇듯 여러 작업을 진행하다가 문제가 생겼을 경우 이전 상태로 롤백하기 위해 사용되는 것이 트랜잭션(Transaction) 이다. 트랜잭션은 더 이상 쪼갤 수 없는 최소 작업 단위를 의미한다. 그래서 트랜잭션은 commit으로 성공 하거나 rollback으로 실패 이후 취소되어야 한다. 하지만 모든 트랜잭션이 동일한 것은 아니고 속성에 따라 동작 방식을 다르게 해줄 수 있다. 예를 들어 1개의 새로운 데이터를 추가하는 ..
1. 싱글톤이 안티 패턴이 될 수 있는 이유 [ 싱글톤이 안티 패턴이 될 수 있는 이유 ] 우리는 싱글톤패턴을 구현할 때 다음과 같이 구현을 한다. 다음은 자바 언어를 이용해 싱글톤 패턴을 구현하는 전형적인 코드이다. public class Person { private static Person instance; private Person() { throw new IllegalStateException("Private Constructor"); } public static Person getInstance() { if (instance == null) { instance = new Person(); } return instance; } } 싱글톤 패턴은 전역 상태(Global State)로 이용할 수 있..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cbmycN/btq4NGXDgYX/ZW2HMUiz3kkPy9kfIt5PCK/img.png)
1. 체크 예외(Check Exception)와 언체크 예외/런타임 예외 (Uncheck Exception, Runtime Exception)의 차이 [ 예외(Exception)의 종류 ] 에러(Error) 예외(Exception) 체크 예외(Check Exception) 언체크 예외(Uncheck Exception) 에러(Error) java.lang.Error 클래스의 하위 클래스들이다. Error는 메모리가 부족하는 등과 같이 시스템이 비정상적인 상황인 경우에 사용한다. 주로 JVM에서 발생시키기 때문에 애플리케이션 코드에서 잡아서는 안되며, 잡아서 대응할 수 있는 방법도 없다. 따라서 시스템 레벨에서 특별한 작업을 하는게 아니라면 이러한 에러 처리는 하지 않아도 된다. 예외(Exception) j..