길고도 짧았던 10주 간의 항플 백엔드 7기를 마무리 했다. 시원 섭섭함이 공존했던 과정 회고를 짧게나마 정리하려고 한다. GitHub - pbg0205/concertContribute to pbg0205/concert development by creating an account on GitHub.github.com 🍿 prequel#1 항해를 신청한 이유 바이오 공학을 전공한 후 사회인 신분으로 개발을 처음 접하게 되었다. 영상 회의 서비스 백엔드 개발을 담당했고 다시 백엔드 개발자로 일하기 위해 항해 플러스 7기를 신청했다. 현재 내가 부족한 부분을 키워드로 고민해보았을 때 설득력과 방향성이었다. 내가 알고 있는 것을 잘 전달할 수 있을지, 어떻게 해야 지속적으로 성장이 가능할 수 있는지에 관..
항플 백엔드 7기
⚓️ 항해 플러스 백엔드 과정의 Chapter02 를 마무리하며 벌써 중간 지점이 지났다.앞으로 5주간의 항해를 위해 '콘서트 대기열 시스템' 이라는 주제의 서비스 뼈대를 완성했다.중간 지점을 지나오며 Chapter02 에서 경험했던 내용들에 관해 적어 보려고 한다. GitHub - pbg0205/concertContribute to pbg0205/concert development by creating an account on GitHub.github.com 1. 🎫 콘서트 대기열 시스템을 구현해보자. 우리조는 '콘서트 대기열 시스템' 서비스를 선택했다. 이번 기수에 e-커머스 서비스 요구사항이 개선되어 고민이 많았다. 하지만 가상 면접 사례로 배우는 대규모 시스템 설계 기초를 읽으며 대기열 서..
수강 신청 미션 - layered architecture with clean architecture GitHub - pbg0205/lecture2024Contribute to pbg0205/lecture2024 development by creating an account on GitHub.github.com [1] 레이어드 아키텍처 with 클린 아키텍처(1) 클래스 의존성기존 레이어드 아키텍처는 단방향 참조 구조로 인해 데이터베이스(DB) 계층의 변경이 서비스 계층에 직접적인 영향을 미치며, 이는 개방-폐쇄 원칙(OCP)을 만족하지 못하는 한계가 있었다. 이를 개선하기 위해 클린 아키텍처의 기본 개념을 도입하여 비즈니스 로직으로 데이터 계층과 API 계층이 의존하도록 구조를 재설계했다. 기존의 Se..
TFD 미션 링크 GitHub - pbg0205/hhplus-tdd-java: hplus tdd 미션hplus tdd 미션. Contribute to pbg0205/hhplus-tdd-java development by creating an account on GitHub.github.com [1] 왜 항해 플러스에 선택하게 되었는가? 여러 사람과 개발을 하며 가장 중요하다고 생각이 들었던 것은 설득의 중요성이었다. 내 코드를 설득하기 위한 명확한 이유와 근거도 필요하지만, 내 생각과 기준을 다른 사람에게 설득하는 연습을 하기 위해서 참여하게 되었다. [2] TDD 는 왜 필요할까? 그리고, TDD에서 중요한 것은?테스트는 마치 보증서이자 설명서와 같다. 테스트는 기능이 의도한 대로 동작함을 보장할 ..
[1] 동시성 이슈가 발생하는 원인(1) CPU 기계어 명령은 기본적으로 원자적 연산을 지원하지 않는다.프로그램은 프로그램 코드를 CPU 기계어 명령어로 변환하여 연산하는데, 이 때 CPU 기계어 명령은 기본적으로 원자적 연산을 지원하지 않는다.두 명령어 이상을 처리하는 경우 원자성을 보장하지 않으며 즉, 현재 수행 중인 명령어가 모두 실행되지 않은 상태로 인터럽트 될 수 있다.결론적으로 CPU 에서 원자성을 보장하지 않는 모든 연산 처리는 스레드 간 동시 접근에 의해 데이터 불일치가 발생할 수 있다.자바에서의 해결 방안 : Atomic 연산 객체 (2) CPU 처리 데이터는 실시간으로 메인 메모리에 데이터가 저장되지 않는다.가시성(visibility) 은 멀티 스레드 환경에서 공유 변수의 변경 내용이..