개발 공부(36)
-
99클럽 26일차 TIL: 아키텍처 패턴 - 모노레포
#1. 오늘의 학습 키워드개발 아키텍처 패턴 중 모노레포에 대해모놀리식 아키텍처 및 MSA에 대해 알아보았다.모놀리식:https://second-brain.tistory.com/42MSAhttps://second-brain.tistory.com/43이제는 모노레포에 대해서 알아보자#2. 공부한 내용1. 멀티레포- MSA로 프로젝트를 진행할 때, 서비스 별 레포지토리를 별도로 가지게 되어서, 레포지토리가 2개 이상일 때 멀티레포라고 부른다.요즘 어떤 프로젝트를 개발한다고 했을 때, 웬만해서는 MSA 멀티레포로 개발하게 된다.보통 프론트엔드, 백엔드 나눠서 진행하게 되기 때문.1) 장점MSA 의 장점과 거의 동일시하면 된다.독립적인 빌드, 배포로 인한 개발 생산성기술 스택의 다양성 등2) 단점레포지토리가 많..
2024.04.29 -
99클럽 25일차 TIL: 아키텍처 패턴 - MSA
#1. 오늘의 학습 키워드개발 아키텍처 패턴 중 MSA에 대해저번 시간은 모놀리식 아키텍처에 대해 알아봤다다시 정리하면 모놀리식 아키텍처는 초기에는 개발 편의성이 높고, 빠른 구축이 가능하지만,어플리케이션의 복잡도가 높아질 수록 모놀리식 아키텍처는 부적합하다.그러면 이런 문제 점을 해결해주는 패턴은 무엇일까MSA#2. 공부한 내용1. MSA- 어플리케이션을 다수의 서비스로 분리하여 개발하는 구조각 서비스는 별도의 프로세스에서 실행된다배포도 독립적으로 실행 됨각 서비스는 자신만의 기능을 담당한다이때 각 서비스는 제공되는 기능에 따라서 다른 언어나 기술로 구현 되었을 수도 있다각 서비스는 http api 같은 가벼운 매커니즘으로 통신1) 장점높은 개발 생산성각 서비스 단위로 개발 / 유지보수 되기 때문에, ..
2024.04.28 -
99클럽 24일차 TIL: 아키텍처 패턴 - 모놀리식
#1. 오늘의 학습 키워드개발 구조 패턴 중 모놀리식 패턴에 대해기존 노드로 개발했을 때 모노레포 구조로 모든 모듈의 백엔드 및 프론트엔드 코드가 하나의 레포지토리에서 구현 되었다.각 모듈 별로 단독 백서버 및 프론트 화면 실행이 가능하였다.원래는 해당 구조로 개발 하다 msa 구조로 변경하려 했었다.노드에서 스프링으로의 리팩토링 때문에 결국 무산 되었지만이때 대두 됐던 개념인 모노레포, msa 등에 대해서 알아보자그전에 제일 기본적인 개발 아키텍처 패턴인 모놀리식 아키텍처에 대해서 알아보자.#2. 공부한 내용1. 모놀리식 아키텍처- 어플리케이션에서 사용되는 모든 코드가 하나의 대규모 구조로 구성되어있는 패턴하나의 시스템이 서비스에서 제공하는 모든 기능을 처리하도록 설계 되어있다.MSA 는 반대로 작은 ..
2024.04.27 -
99클럽 23일차 TIL: Thread (Java, Spring)
#1. 오늘의 학습 키워드자바 스프링에서의 쓰레드에 대해JS → 자바로 넘어오면서, 언어에 차이는 멀티쓰레드 유무라고 알고 있었다.JS싱글 쓰레드자바멀티 쓰레드이에 대해서 디테일하게 알아보자#2. 공부한 내용1. Process- 운영체제(os)에서 할당하는 작업의 단위- 실행 중인 프로그램프로세스는 디스크 → 메모리 → CPU 의 할당을 받는 작업의 단위컴퓨터에서 실행 중인 프로그램으로 봐도 무방하다프로세스 끼리는 별도의 메모리 영역을 갖는다.2. Thread- 프로세스의 실행 최소 단위한 프로세스 내의 여러 쓰레드가 작업을 나누어서 실행을 한다.같은 프로세스 내 쓰레드 끼리는 자원 공유가 가능하다.공유되는 자원은 코드, 데이터, 파일 등이다.구조쓰레드 ID쓰레드의 식별자프로세스도 PID 가 있듯이 쓰레..
2024.04.26 -
99클럽 22일차 TIL: KISS, YAGNI, DRY
#1. 오늘의 학습 키워드소프트웨어 개발 3대원칙 KISS, YAGNI, DRY에 대해저번 포스트에서 객체지향 설계 5대 원칙인 SOLID 원칙을 알아보았다.https://second-brain.tistory.com/38이번엔 추가적으로 전체를 아우르는 소프트웨어 개발 3대 원칙에 대해 알아보자#2. 공부한 내용1. KISS- Keep It Simple Stupid- Keep It Short and Simple- Keep It Small and Simple위 phrase 들의 약어다.즉 소프트웨어 설계 시 최대한 간단하고 짧게 구현하라는 뜻이다.소스 코드가 될 수도 있고, 설계 구조가 될 수도 있다.요건만 만족한다면, 굳이 불필요하게 복잡하게 설계를 할 필요가 없다.복잡할 수록 생산성은 낮아지고, 유지보..
2024.04.25 -
99클럽 21일차 TIL: Validation Group
#1. 오늘의 학습 키워드자바 스프링 부트에서 Validation을 특정 Group에 대해서만 걸어주고 싶을 때자바 스프링 부트에서 개발을 진행할 때, 만약 같은 DTO로 여러 API 를 대응했을 때, validation 의 규칙을 다르게 해야하면 어떻게 해야될까전에 Loki 서버로 에러 로그를 전송해주는 LokiUtil 컴포넌트를 개발하였다.해당 메서드로 프론트의 로그도 같이 전송해주려 API 를 개발하였는데,이때 API는 아래의 두 종류가 되고, 두 API는 기본적으로 로그 형식은 같기에, DTO는 하나를 공유하고 있다프론트의 에러 로그 전송 API프론트의 화면 방문 추적 로그 전송 API#2. 공부한 내용@NotBlank해당 어노테이션은 Dto의 속성에 공백..
2024.04.24