Backend

    [Fast API] 기초 설정 및 데이터베이스 연결

    📕 목차1. What is Fast API2. 설치3. MySQL 연결4. API 생성1. What is Fast API 📌 Fast API파이썬 3.6부터 제공하는 경량 프레임 워크라고 한다. 보통 파이썬에서 경량 프레임워크 하면 Flask, 보다 많은 기능이 필요하면 Django를 사용했는데조작법도 단순하고 성능면으로 우수한 Fast API가 등장했다(고 한다) 📌 특징API 문서 자동 생성의존성 주입 위주의 설계를 통한 DB 등에 대한 관리 용이비동기 처리Pydantic을 사용한 유효성 검사  GitHub - psychology50/Fast-API: python fast api 실습용python fast api 실습용. Contribute to psychology50/Fast-API devel..

    [Spring Boot] 동시성 제어와 분산 락(Distributed Lock)

    📕 목차1. 동시성 문제2. 낙관적 락과 비관적 락3. 분산락1. 동시성 문제 📌 Single Process & Single Thread모든 요청을 하나의 애플리케이션, 그리고 하나의 Thread가 처리한다면 동시성 문제는 발생하지 않는다.일을 한 명이 처리하면 애초에 공유 자원이라는 개념 자체가 성립이 되지 않으므로 문제는 해결할 수 있다.하지만 요청에 대한 응답 속도가 현저하게 떨어지므로 사용자 경험에 악영향을 주게 된다.Node.js라면 모를까 Spring은 기본적으로 Thread Pool을 10개로 할당하는 것으로 알고 있다. (정확한 값은 모름. 설정이 가능하다.)  📌 Single Process & Multi ThreadApplication이 하나만 존재해도 동시성 문제는 충분히 발생할 ..

    [Spring Boot] Service Layer 분리에 대하여 (2)

    📕 목차1. 개요2. 여러 개의 UseCase3. 단일 UseCase4. 파사드 패턴을 더 준수해보기 1. 개요 📌 배경 [Spring Boot] Service Layer 분리에 대하여1. As-is. Service 계층의 순환 참조 Spring을 가장 처음 배우면, Web Application 5계층에 대해서 배우게 된다. 그리고 User라는 Domain에 대해 코드를 작성하면 아래 클래스들을 작성하고 시작한다. UserControllejaeseo0519.tistory.com [Spring Boot] 프로젝트 멀티 모듈화 고찰💡 해당 포스트는 필자의 빈약한 이해 지식을 기반으로 한 프로젝트 멀티 모듈화입니다.개발이 진행됨에 따라 추후 지속적으로 내용이 변경될 수 있으며, 혹시나 본인의 프로젝트에도..

    [Spring Boot] TDD에선 왜 실패하는 테스트 코드를 먼저 작성할까?

    📕 목차1. TDD의 목적2. TDD와 클린 코드3. 참고 자료1. TDD의 목적 📌 개요TDD를 공부하기 위해 자료를 찾아보면 가장 쉽게 볼 수 있는 내용이 TDD의 리듬과 F.I.R.S.T에 관한 내용이다. ✒️ TDD의 리듬1. Red: 실패하는 작은 테스트를 작성하라. 처음에는 컴파일조차 되지 않을 수 있다.2. Green: 빨리 테스트가 통과하게끔 한다. 이를 위해 어떠한 죄악을 저질러도 좋다.3. Refactoring: 일단 테스트를 통과하게만 하는 와중에 생긴 모든 중복을 제거하라. 그런데 이상하지 않은가?어째서 프로덕션 코드보다도 테스트가 선행되며, 개발자가 실패할 것을 뻔히 아는 빨간 줄을 마주보게 만들까? 테스트 코드를 먼저 작성한다는 것은 무엇을 의미하며, 테스트 코드의 목적이 대..