설계 4

[설계] 순서 결정의 책임을 결정하는 방법

🍎 클라이언트와 서버 간 데이터를 주고받을 때, 데이터 순서 정렬이 필요한 상황에서 고려할 사항들을 정리합니다.🍏 상황 설명- Json Format으로 조회한 제품 리스트의 순서 정렬에 관한 요구사항을 해결 중 정렬의 관한 책임을 서버에 두기로 생각- 생각의 근거는 순서를 정렬하는 것이 비즈니스 로직에 포함되어야 한다고 판단했고 클라이언트에선 서버에 요청값을{ “order” : “ASCENDING” }- 위와 같이 넘겨 정렬이 완료된 값만 받아오는 것이 합리적이라고 생각📝 놓친 부분- 첫 번째 이유는 서버가 정렬하는 것이 비즈니스 로직이라고 판단했는데 이를 잘못 판단비즈니스 로직이라는 것은 운영하는 서비스 내부에 존재하며 다른 도메인(혹은 서비스)에선 적용되지 않은 로직"정렬" 기능은 내가 속한 조..

Dev 2024.09.03

[설계] 설계 시 우선되어야 할 계층 구조에 대하여

🍎 패키지 계층 구조와 클래스 계층 구조 중 어느 것을 우선으로 생각해야 하는지 정리합니다.- 애플리케이션 요구사항을 받아 코드 작성에 들어가기 전에, 당연하게 생각했던 개발팀 내부의 패키지 계층 구조와 클래스 계층 구조를 다시금 낯설게 바라보게 되었습니다.- 패키지 계층 구조가 아직 정해지지 않은 상황, 즉 백지 상태에서 설계를 시작해야 할 때, 무엇을 우선적으로 고려해야 할지 고민해 보았습니다.🍏 결론- 결론부터 이야기하자면 패키지 계층 구조 설계보다 클래스 계층 구조 설계가 먼저 선행되어야 하는 것이 좋습니다.- 이유는 하나의 패키지 안에 관계를 맺고 있는 클래스들이 존재한다 하더라도 클래스의 계층 구조는 깨지지 않습니다.- 패키지 계층 구조는 단지 클래스들을 보다 보기 쉽게 계층을 나눠 구성하..

Dev 2024.09.03

REST API 설계 및 사용 시 참고 사항

🍎 글의 시작점- 서버 애플리케이션을 개발하며 클라이언트와의 통신을 위해 REST API 스펙을 설계할 때, 도움이 될 만한 팁과 방법을 정리한 글입니다.🍏 참고 사항- API는 기본적으로 Client 곳곳에서 사용할 걸 가정하고 만들어야 하므로, 가급적 범용적으로 만들고 갖다 쓰는 쪽에서 응용해서 사용해야 합니다.- 매우 제한적인 이유로 (퍼포먼스라든지) 전용 API를 만들어서 해결해야 하는 경우도 있지만 그건 원칙을 어긋나는 경우라고 생각합니다.제한적인 상황의 전용 API의 예시임시로 백 투 백으로 서버 데이터를 동기화하는 API의 경우 제한적으로 만들어 사용합니다. 이러한 API는 특정 상황이나 기간에만 필요하고, 시스템이 안정화되거나 이전이 완료되면 사용이 중단되는 경우가 많습니다.- AP..

Dev 2024.09.01

[TIP] 필요조건, 충분조건, 필요충분 조건

🍎 해당 글을 정리하게 된 이유?- 개발 시, 모델 A가 모델 B에게 영향을 주는 것을 더 선명하게 알기 위해 정리합니다.- 위 개념을 확실히 이해하면, 논리적 사고와 문제 해결에 필수적인 도구로 작용하며 깊은 사고를 할 수 있게 도와줍니다.🍏 필요조건이란?- 어떤 일이 일어나기 위해 반드시 있어야 하지만 그것만으로는 충분하지 않은 조건e.g) 비가 오기 위해서는 구름이 있어야 한다.- 비가 오려면 구름이 꼭 필요하지만 구름이 있다고 해서 반드시 비가 오는 것은 아닙니다. 따라서 구름은 비가 내리기 위한 필요조건입니다.🍏 충분조건이란?- 어떤 일이 일어나게 하는데 충분하지만 그것이 필요하지 않은 조건e.g) 비가 온다면 땅이 젖는다.- 비가 오면 땅은 반드시 젖습니다. 그러나, 땅이 젖을 수 있는..

잡다한 글 2024.09.01