전체 글(194)
-
Git Merge와 Rebase
1. Merge Merge는 각 브랜치의 마지막 커밋 두 개와 공통 조상의 총 3개의 커밋을 이용하는 3-way-merge를 수행하여 새로운 커밋을 만들어내는 것입니다. 다음 그림에서 보이는 feature와 matser의 마지막 커밋은 각각 f2와 m2, 그리고 공통 조상은 b입니다. 따라서 이 세개의 커밋으로 새로운 커밋을 만듭니다. 3-way-merge를 사용하는 이유 만약 공통 조상 커밋 없이 나와 다른 사람의 브랜치만 비교하여 Merge를 한다고 합니다. 그림을 보면 양쪽에서 동일하게 관찰되는 부분을 제외하고는 a가 원래 a였는지 a'였는지 확실하게 정하기가 어렵습니다. 따라서 충돌이 일어난 것인지 여부도 알 수 없습니다. 하지만 Base커밋을 함께 비교하여 3-way merge를 수행하면..
2020.04.26 -
객체 지향 프로그래밍의 5원칙
1. Single Responsibility Principle(단일 책임 원칙) 클래스는 단 하나의 책임만을 가져야 한다. 작성된 클래스는 하나의 기능만 가지며, 클래스가 제공하는 모든 서비스는 그 하나의 책임을 수행하는데 집중되어 있어야 한다는 원칙입니다. 이는 어떤 변화에 의해 클래스를 변경하는 이유는 오직 하나뿐이어야 함을 의미합니다. 단일 책임 원칙을 적용하면, 무엇보다도 책임 영역이 확실해지기 때문에 한 책임의 변경에서 다른 책임의 변경으로의 연쇄작용에서 자유로울 수 있습니다. 뿐만 아니라 책임을 적절히 분배함으로써 코드의 가독성 향상, 유지보수 용이라는 이점까지 누릴 수 있습니다. 2. Open Close Principle(개방 폐쇄 원칙) 기존의 코드를 변경하지 않고(Closed) 기능을 수..
2020.04.26 -
@ExceptionHandler
1. @ExceptionHandler @ExceptionHandler는 @Controller, @RestController가 적용된 빈에서 발생하는 예외를 잡아서 하나의 메서드에서 처리해주는 기능을 합니다. @RestController public class MyRestController { @ExceptionHandler(NullPointerException.class) public Object nullex(Exception e) { System.err.println(e.getClass()); return "myService"; } } 위와 같이 @ExceptionHandler를 쓰고 캐치하고 싶은 예외 클래스를 인자로 등록해주면 사용할 수 있습니다. 예제와 같이 사용한다면 MyRestControlle..
2020.04.26 -
예외 처리
1. Error(에러)와 Exception(예외)의 차이 Error Error란 컴퓨터 하드웨어의 오동작 혹은 고장으로 인해 응용프로그램에 이상이 생기거나 JVM 실행에 문제가 생겼을 경우 발생하는 것을 말합니다. 이 경우, 개발자는 대처할 방법이 극히 제한적입니다. Exception Exception이란 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류를 말합니다. Exception이 발생하면 프로그램이 종료가 된다는 것은 Error와 같습니다. 하지만 Exception은 Exception Handling을 통해 프로그램을 종료하지 않고 정상적으로 작동되게 만들 수 있습니다. 2. Checked Exception과 Unchecked Excption Checked Excep..
2020.04.25 -
API
1. API란 API는 응용프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 말합니다. 다르게 말하자면 API는 프로그램과 또 다른 프로그램을 연결해주는 일종의 다리라고 할 수 있습니다. 2. API의 역할 API는 서버와 데이터베이스에 대한 출입구 역할을 합니다. 데이터베이스에는 많은 정보들이 저장됩니다. API는 사용자가 가진 서버와 데이터베이스에 대한 출입구 역할을 하며, 허용된 사람들에게만 접근성을 부여해줍니다. API는 애플리케이션과 기기가 원활하게 통신할 수 있도록 합니다. API는 애플리케이션과 기기가 데이터를 원활히 주고 받을 수 있도록 돕는 역할을 합니다. API는 모든 접속을 표준화합니다. API는 모든 접속을 표준화하기 때..
2020.04.22 -
Filter, Interceptor, AOP의 차이
1. Filter Filter는 DispatcherServlet 이전에 실행이 되어 Filter가 동작하도록 지정된 자원의 앞단에서 요청내용을 변경하거나, 여러가지 체크를 수행할 수 있습니다. 또한 자원의 처리가 끝난 후 응답 내용에 대해서도 변경하는 처리를 할 수 있습니다. Filter는 웹 설정에 기본적으로 등록되는데 대표적으로 인코딩변환, 로그인 여부확인, 권한 체크 등의 요청에 대한 처리로 사용됩니다. Web.xml에서 필터의 예시 encoding org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 encoding /* 2. Interceptor Interceptor는 DispatcherServlet가 컨트롤러를 호출하기 전..
2020.04.22