We will find a way, we always have.

-interstellar

2024/10 4

[독서] 자바 / 스프링 개발자를 위한 실용주의 프로그래밍 - 3

5. 순환 참조 순환 참조는 두 개 이상의 객체나 컴포넌트가 서로를 참조함으로써 의존 관계에 사이클이 생긴 상황을 말한다. 예를 들어 객체 A가 객체 B를 참조하고, 객체 B가 다시 객체 A를 참조하는 양방향 참조는 대표적인 순환 참조의 예다. 이러한 순환 참조는 소프트웨어 설계에서 자주 볼 수 있는 대표적인 안티패턴 중 하나이다. JPA를 사용하다보면 @OneToMany와 @ManyToOne을 이용해 양방향 매핑(bidirectional mapping)을 적용하는 사례를 많이 접할 수 있다. JPA의 양방향 매핑은 순환 참조다. Team과 Member의 예제로도 많이 등장하는 양방향 매핑은 순환 참조라는 죄악의 면죄부처럼 사용되고 있는 거 같기도 하다. 순환 참조의 문제는 엔티티에서만 생기는 것이 아니..

카테고리 없음 2024.10.28

[독서] 자바 / 스프링 개발자를 위한 실용주의 프로그래밍 - 2

4. SOLID객체지향에서 좋은 설계와아키텍처를 이야기하면 빠지지 않고 나오는 것이 SOLID 원칙이다.  단일 책임 원칙(SRP: Single Responsibility Principle)개방 폐쇄 원칙(OCP: Open-Closed Principle)리스코프 치환 원칙(LSP: Liskov Substitution Principle)인터페이스 분리 원칙(ISP: Interface Segregation Principle)의존성 역전 원칙(DIP: Dependency Inversion Principle) 로버트 C.마틴이 2000년대 초반에 고안했으며 각 원칙은 객체지향 언어에서 좋은 설계를 얻기 위해 개발자가 지켜야 할 규범과 같은 것을 이야기한다. 그리고 각 원칙의 목표는 소프트웨어의 유지보수성과 확장..

카테고리 없음 2024.10.21

[독서] 자바 / 스프링 개발자를 위한 실용주의 프로그래밍 - 1

1부 객체지향1. 절차지향과 비교하기객체지향 이야기가 나올 때 친구처럼 나오는 녀석이 바로 절차지향이다. 절차지향(procedure oriented) 이전에 순차지향(sequential oriented)이라는 패러다임도 있었다.  순차, 절차 이렇게 놓고 보면 둘이 차이가 있는지 헷갈린다. 하지만 영문을 잘 해석해보면 살짝 다르다는 것을 알 수 있다. 순차지향은 진짜 말그대로 순차적으로(sequential) 라는 뜻으로, 코드를 위에서 아래로 읽겠다는 의미이고, 절차지향의 procedure는 직역하면 절차가 맞지만 컴퓨터 공학에서 말하는 Procedure는 사실 함수이다. 때문에 절차지향 프로그래밍은 사실상 함수 지향 프로그래밍으로 함수 위주로 생각하고 프로그램을 만드는 패러다임이다.  이후 "객체지향의..

카테고리 없음 2024.10.14