til(36)
-
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 -
99클럽 20일차 TIL: SOLID
#1. 오늘의 학습 키워드 개발원칙 SOLID 에 대해서 자바 스프링 부트로 개발을 하기 시작하면서, 여러 기술을 접하면서, 객체 지향 프로그래밍은 이런 것이구나, 를 간접적으로 느꼈다. 그러면 객체지향 프로그래밍의 5가지 설계원칙, SOLID 에 대해서도 알아보자 #2. 공부한 내용 SOLID 객체지향 프로그래밍을 하면서 지켜야하는 5대 원칙 5개의 원칙은 아래와 같다 SRP (단일 책임 원칙) OCP (개방 - 폐쇄 원칙) LSP (리스코프 원칙) ISP (인터페이스 원칙) DIP (의존 역전 원칙) 1. SRP (Single Responsibility Principle) 단일 책임 원칙 단일의 모듈은 단일의 책임을 갖는다는 원칙 특정 모듈을 수정할 때, 해당 모듈을 수정하는 이유는 하나여야된다는 의..
2024.04.23 -
99클럽 19일차 TIL: WebSocket
#1. 오늘의 학습 키워드 자바 Spring 에서의 WebSocket 에 대해서 저번 post 에서 HTTP 2 방식으로 통신을 하여 양방향 통신을 지원하는 gRPC 에 대해서 알아보았다. 또한 채팅 등 실시간 서비스에 적합한 Spring Webflux 에 대해서 알아보았다. 이 두 가지의 특징을 살펴보면, 익숙한 또 다른 기술이 떠오른다 WebSocket #2. 공부한 내용 WebSocket 웹 소켓 웹 소캣은 서버와 클라이언트 사이의 인터액티브 통신 세션을 설정하여 언제든 양방향 통신 및 데이터 전송을 가능하케 하는 기술이다 보통 채팅, 증권 거래, sns 등 서비스에서 많이 쓰이고 있다. 채팅 서비스를 구현 할 때 기존 rest API 방식을 사용하게 되면, 클라이언트에서 매번 서버로 HTTP 통신..
2024.04.22