머리속에 궁금했던 것들(5)
-
Clean Architecture(DDD?)
친한 동생들과 얘기하던 중 면접 중에 Clean Architecture에 대해서 물어봤다고해서 띠용 이게 뭐지? 라는 생각이 들어서 찾아봤다. Clean ArchitectureClean Architecture는 프로젝트 구성을 사용 목적에 따라 계층으로 분류하고 각 계층끼리 의존성을 제어하며 실행되는 시스템 구조를 의미한다. 이런 구조가 왜 나오게 된 것일까? 1. 테스트 편의성 각 계층은 하위 계층이 어떻게 구현된지 모르는채 개발하는 것이 중요한 구조이다. 따라서 다른 계층의 코드의 영향 없이 각 계층의 로직만 테스트 코드를 작성해주면 된다. e.g) 1. Bussiness 로직만 구현한 코드만 테스트 코드 작성 2. DB를 조회하는 코드만 테스트 작성 즉 각 계층의 역할을 서로 신경쓰지 않고 테스트 ..
2024.09.17 -
http와 https의 차이
HTTP(Hypertext Transper Protocol)HTTP는 Application 계층에서 요청을 서버에 보내고 응답을 받는 프로토콜이다. 하지만 HTTP를 사용하기에 문제가 있는 점이 있는데 요청 및 응답이 평문으로 전송되어 중간에서 데이터 패킷 제 3자가 가로채고 읽을 수 있습니다. HTTP의 보안 이슈를 해결하기 위해서 만든 것이 HTTPS(Hypertext Transper Protocol Secure)입니다. HTTPS는 어떻게 작동하는가?HTTPS는 요청 및 응답을 SSL와 TLS와 결합합니다. 이 과정을 아래에 설명합니다. 독립된 인증 기관에서 SSL/TLS 인증서를 획득합니다.여기서 말하는 독립기관은 SSL/TLS 인증서를 발급해주는 회사를 의미힙니다. 찾아보면 여러 회사가 존재하는..
2024.09.16 -
L4, L7 Loadbalancer 차이
L4, L7 LoadbalancerLoadbalancer는 트래픽이 들어왔을 때 부하 및 특정 목적에 의해 분산을 시켜주는 기능을 제공하고 있다. L4와 L7 각각에 Loadbalancer를 적용할 수 있는데 트래픽을 분산 시키는 기능은 비슷하나 다른 목적을 갖고 있다. 우선 L7과 L4에서 어떤 작업이 이루어지는지 알아보자 L7 LayerApplication Layer로 일반적인 사용자의 요청과 연결되어 있는 계층입니다. 주요 프로토콜HTTPHTTPSSMTPFTP역할 1. SSL/TLS 등을 활용해 데이터를 암호화 및 인증 역할을 합니다.2. 세션 관리3. 애플리케이션과 네트워크가 바로 맞다아 있는 계층이기 때문에 바로 잘 상호작용 할 수 있도록 설정되어 있습니다. L4 Layer데이터를 신뢰성 있..
2024.09.10 -
서버 성능 테스트(1)
서버 성능 테스트(1) 회사에서 api 서버를 개발하다가 최종 단계인 스트레스 테스트가 필요해졌다. 만든 api 서버가 어디서 병목현상이 발생하는지 많은 사람들이 몰렸을 때 어떤 사고가 발생하는지 체크를 해야했다. 그래서 진행할 스트레스가 어떤 종류가 있고 어떤 툴을 사용할지 등의 과정을 정리하려고 한다. 우선 퍼포먼스 테스트가 무엇인지 알아보자 Performance Test란 Performance Test란 주어진 상황속에서 시스템의 컴포넌트가 시스템에서 어떻게 수행되는지 탐지해내는 것이다. Resource의 사용량, 확장성, 신뢰성 등을 테스트를 통해 적합한지 인식할 수 있다. 아래 사진과 같이 각 6개의 테스트가 퍼포먼스테스트에 포함되는 것이다. Load Testing Load Testing을 보면..
2021.11.18 -
Go, Java Garbage Collector
Go, Java Garbage Collector 예전까지 가비지 컬렉터는 단순히 메모리에 들어 있는 안쓰는 변수 등을 개발자가 다 해제 시켜주기 귀찮다. 이러한 일을 자동으로 해주는 것이 가비지 컬렉터이다. 아직까지 정확히 어떤 원리를 통해 가비지 컬렉터가 작동하는지 잘 모르고 있다. 그래서 이번 기회에 정리해보려고 한다. JVM(Java8 HotSpot VM) Go 컬렉터 복수(Serial, Parallel, CMS, G1) CMS Only 컴팩션 있음 없음 세대별 GC 있음 없음 튜닝 파라미터 컬렉터에 따라 상이하나 복수 존재 GOGC Only Mark & Sweep 가비 컬렉터에 존재하는 Root를 시작으로 여러 객체에 접근할 수 있습니다. Root의 경우에는 실행중인 스레드, 정적 변수, 로컬 변..
2021.06.08