전체글

    [Spring] 스프링에서 빈 객체를 등록하는 방법(@Bean, @Component)

    [Spring] 스프링에서 빈 객체를 등록하는 방법(@Bean, @Component)

    https://youwjune.tistory.com/37 [Spring] DI와 IOC에 대해서 스프링을 막 공부하기 시작하는 비기너에게 DI와 IOC에 대한 개념은 너무나도 중요한 것 같습니다! 하지만, 이를 왜 사용할까요? DI와 IOC를 활용하면 어떤 이점이 있을까요? Spring에서는 DI와 IOC가 youwjune.tistory.com 지난번에 DI와 IOC를 공부하며, 자바와 다르게 스프링에서는 객체의 대한 생성부터 소멸까지 모든 관리 책임을 스프링이 갖고(IoC), 필요한 경우 해당 객체를 전달(DI) 한다고 했다. 그렇다면, 스프링은 객체를 대체 어떻게 관리할까? POJO 객체란? 스프링 빈(Bean)이란, 스프링에서 관리하는 자바 POJO 객체라고 말할 수 있다. 사실 이 POJO 객체에..

    [WEB] HTTP Method란?

    [WEB] HTTP Method란?

    HTTP Method에 대해HTTP Method란? 클라이언트 - 서버 구조에서 요청(request)와 응답(response)가 이루어지는 방식을 의미합니다.서버가 수행해야 할 동작을 지정하여 요청(request)을 보내는 방법이라고 정리할 수 있겠네요. HTTP 메서드는 왜 사용할까요? 결국 리소스와 동작를 분리하기 위함입니다.HTTP METHOD를 통해 서버가 수행해야 할 동작을 지정하면, URI는 리소스만 식별하면 되기 때문이죠. HTTP Method의 종류HTTP Method는 크게 8가지가 있으며, 다음과 같습니다. GET : 리소스를 조회POST : 데이터 추가, 등록PUT : 리소스 대체, 수정 / 해당 리소스가 없으면 새롭게 생성DELETE : 리소스 삭제PATCH : 리소스 부분 변경(수..

    [Spring] 비즈니스 로직이란?

    비즈니스 로직이란? 우리는 흔히 MVC 패턴에서 Service Layer에 대해서 Business 로직을 처리하는 Layer이라고 정의하곤 한다. 하지만, 우리가 흔히들 말하는 비즈니스 로직이란 대체 무엇일까? 이에 대한 내 주관적인 생각을 적어보고자 한다. Business Logic 우선 내가 생각하는 Business Logic이란, 실제 어떤 프로그램에서 request의 처리나, 특정한 기능 수행을 위해 데이터를 처리하는 실질적인 로직을 뜻한다고 정의할 수 있을 것 같다. 다시 말해, 사용자의 요구사항을 해결하기 위한 실질적인 코드라고 한 문장으로 정의할 수 있다. 실제로 MVC 패턴에서는 비즈니스 로직이 담긴 Layer는 오직 Service Layer로 제한되고 있는데, 사실상 실질적인 데이터의 처..

    [Spring] Controller, Service, Repository

    [Spring] Controller, Service, Repository

    Spring에서 프로젝트를 시작하면, 항상 Controller, Service, Repository를 너무 당연하듯 분리하곤 한다. 하지만, 이에 대해 왜 이렇게 분리하는지 생각해 본 적 있는가? 이번 포스트를 통해 Controller, Service, Repository에 차이에 대해 명확히 알아가는 시간을 가져 보려고 한다. MVC 패턴이란? MVC 패턴이란, 사용자 인터페이스로부터 비즈니스 로직을 분리하여, View - Controller - Model의 3가지로 분류하는 패턴이다. 그렇다면, MVC 패턴은 왜 등장했을까? MVC 패턴이 등장하기 이전에, Spring 에서는 JSP를 사용하곤 했었다. 이는 Controller 영역에 View 영역을 같이 구현하는 방식이며, 사용자의 요청을 JSP가 ..

    [Spring] Entity, DTO, VO 무슨 차이야?

    앞서 DDD에 대한 포스트를 작성하며 Domain에 대해서도 살펴보게 되었다. 최근에 Domain이랑 Entity에 대한 차이가 무엇이냐는 질문을 받았는데, 나는 여태껏 거의 동일한 개념이라고 생각해 왔다. 저번 포스트에 이어 이번 포스트에는 Entity가 무엇인지 정리하고, 많은 사람들이 혼용하는 DTO와 VO에 대해서도 함께 정리하려고 한다. Entity란? Entity 클래스는 실제 DB의 Relation과 1:1로 매핑되는 클래스로, DB Relation 내에 존재하는 attribute만 속성(필드)로 가져야 하는 것이 특징이다. Domain Logic만을 가지고, Presentation Logic(View)를 가져서는 안된다. 가급적 외부에서는 Entity 클래스의 필드에 직접적으로 접근하지 않..

    DDD 설계 vs SQL 중심 설계

    DDD 설계 vs SQL 중심 설계

    1. DDD란? DDD(Domain Driven Design : 도메인 주도 설계)란? 도메인 패턴을 중심에 놓고 설계하는 패턴이다. 즉, 도메인 간의 상호작용이 설계의 중심이 된다. 도메인이란, 소프트웨어로 해결하고자 하는 문제의 영역, 실세계에서 사건이 발생하는 집합과 같은 말들로 정의할 수 있다. DDD에서의 도메인이란 비즈니스 도메인을 의미하며, 비즈니스 도메인은 유사한 업무의 집합이다. DDD의 특징 핵심 도메인과 도메인 로직에 초점을 맞춘다. Entity와 도메인 개념의 일치를 지향한다. 각 도메인은 서로 협력하지만 책임과 역할이 명확하여 높은 응집도와 낮은 결합도를 갖는 상태를 지향한다. 이를 통해 변경과 확장에 대해 유연한 코드를 작성할 수 있다. DDD의 Layered Architectu..

    [Spring] DI와 IOC에 대해서

    스프링을 막 공부하기 시작하는 비기너에게 DI와 IOC에 대한 개념은 너무나도 중요한 것 같습니다! 하지만, 이를 왜 사용할까요? DI와 IOC를 활용하면 어떤 이점이 있을까요? Spring에서는 DI와 IOC가 어떻게 이루어지고 있을까요? 위에 물음에 답을 해 보는 시간을 가져보려고 합니다!' 1. DI(Dependency Injection)이란? 먼저, 한 사람이 폰을 구매하는 코드를 같이 살펴봅시다! public class Main { public void main(String[] args) { Person jobth = new Person(“잡th”); jobth.buy(); } } class Person { … void buy() { SamsongPhone samsong = new Samsong..

    @Override가 뭐야?

    @Override가 뭐야?

    1. 오버라이딩이란? 오버라이딩이란, 참조하는 클래스의 메서드를 맥락에 맞게 재정의하여 사용하는 것입니다. 쉽게 말하면, 조상 클래스에서 상속받은 메서드의 내용을 변경하는 것이죠. 대신 조상 클래스에서 상속받은 메서드를 재정의하는 것이므로 다음과 같은 조건을 충족시켜주어야 하는데요, 메서드의 이름이 같아야 한다. 메서드의 매개변수 타입, 개수가 같아야 한다. 메서드의 return type이 같아야 한다. 위 세 가지는 반드시 지켜야 오버라이딩이 가능합니다. 2. @Override 애너테이션은 꼭 사용해야 할까? 먼저 애너테이션이란, 일종의 주석 같은 개념으로써 주로 컴파일 시에 컴파일러에게 정보를 제공하는 목적으로 사용됩니다. @Override 애너테이션을 붙이면, 해당 메서드가 조상의 메서드를 오버라이..