CS

    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 애너테이션을 붙이면, 해당 메서드가 조상의 메서드를 오버라이..

    [자바] 인터페이스는 객체지향의 4대 특성중에 무엇을 지니는가?

    객체지향의 4대 특성은 캡슐화, 추상화, 상속성, 다형성이다. 인터페이스를 이용하면 해당 4가지 특성 중 추상화를 충족시킨다고 생각합니다. 인터페이스는 언뜻 추상 클래스와 비슷한 특성을 보이지만, 그 목적은 함수의 구현을 강제하는 데에 있습니다. 이를 통해서, 인터페이스를 구현하는 모든 클래스는 인터페이스에서 구현을 강제하는 모든 기능을 갖추어야 하고, 이에 따라 통일된 규격을 갖출 수 있다는 것이 장점입니다. 상속과는 달리 불필요한 속성과 기능을 강제로 상속받지 않아도 되기 때문에, 상속에 비해 결합도가 낮다는 것도 특징입니다. 인터페이스를 통해 공통적인 부분을 추상화함에 따라서 프로그래머가 캡슐화나 다형성을 잘 살린 프로그래밍을 가능하게 하는 필수적인 특성이라고 생각합니다.

    [자바] 객체지향의 4가지 특성

    1. 캡슐화 캡슐화(encapsulation)이란, 추상화의 한 종류로 객체의 속성과 메서드를 묶고, 필요한 부분만 외부에 공개하는 방식으로 불필요하게 노출될 필요가 없는 내부 구현 정보를 숨기는 것이다 예시 코드로, 제 지갑을 소개합니다. 총 금액을 알려주는 기능과, 돈을 지불하는 기능을 갖추고 있습니다. public class Wallet { private int money; public Wallet(int money){ this.money = money; } public int getTotalMoney(int price) { return this.money; } private void substractMoney(int charge) { money -= charge; } } 자바에서 캡슐화를 가능하게..