분류 전체보기22 [합격수기] 삼성청년SW아카데미(SSAFY) 합격 수기 (전공자) 필자가 썼던 SSAFY 합격 수기인데 아직까지 많은 분들이 읽어주셔서 티스토리에도 기재해봅니다.삼성청년SW아카데미 합격수기간단하게 교육 후기를 남겨보자면, 개인적으로 프로젝트 3번했던 게 큰 도움이 됐었습니다.제대로 해본 백엔드 포지션 프로젝트는 처음이었는데, 기술적으로도 그리고 비기술적으로도 모두 역량이 향상된 게 느껴져요.그리고 생각나는 에피소드들을 조금씩 풀어보자면..잠 많이 못자고 운동도 다녀오고 축구 응원하고 와서 새벽에 위경련 와서 하루종일 못 움직였던 기억최종 발표 이틀 전 발표자 자처해서 온라인상이지만 500명 앞에서 발표했던 경험kafka 메시지큐 처음 써보면서 100만번의 로그로 서버가 몇 번 터진 경험웹소켓으로 실시간 주식 데이터 받아오는 것 구현 되서 너무 기뻐했던 경험주식프로젝트가.. 2025. 7. 10. [Spring Boot] OAuth 2.0 소셜 로그인 구현 흐름 이전에 웹 프론트엔드에서 카카오 소셜 로그인 구현 경험은 있는데 백엔드 측에서 작업해보고싶기도 했고, 이번에 토이 프로젝트를 하면서 백엔드 프론트엔드 모두 도맡아 하게되어 flow를 정리해봤습니다.(여기서 Connective 서버는 자체 서비스 백엔드 서버)1. Flow[클라이언트] 사용자 소셜 로그인 버튼 클릭[클라이언트] 소셜 로그인 제공자 로그인 페이지로 리다이렉션프론트엔드는 사용자의 브라우저를 카카오 또는 구글의 인증(로그인) 페이지로 리다이렉션 시킨다.이때 클라이언트 ID, 콜백 URL(리다이렉트 URI), 요청 권한 등을 소셜 로그인 제공자에게 함께 전달한다.[소셜 로그인 제공자] 사용자 인증 및 동의사용자는 카카오/구글 로그인 페이지에서 자신의 ID/PW를 입력하고 로그인한다.소셜 로그인 제.. 2025. 7. 3. [프로젝트 회고] 의도치 않은 하이브리드 아키텍처: Spring MVC와 WebClient의 공존 프로젝트 할 당시에는 세세한 것까지 신경쓰기보다는 기능을 만들어놓고 개선하는 방향으로 진행을 했었는데, 최근부터 코드를 다시 보고 개선할 부분이 어떤 것들이 있는지 보면서 리팩토링을 하는중이다.꼭 기록을 하고싶어서 간략하게나마 기록을 한다 !!StockOfGalaxy github link1. 개요우선 우리 프로젝트는 MSA구조로 설계가 되어있고, 총 3개의 도메인으로 서버를 분리했다. 그 중 나는 주식 도메인과 유저 도메인을 맡았고, 지금 말하고자 하는 부분은 주식 도메인이다.주요 목표는 한투증권으로부터 실시간 주식 시세 데이터를 받아 사용자에게 제공하는 것이었다. 초기 개발 단계에서는 익숙하고 안정적인 Spring MVC 방식을 기반으로 진행했고 대부분의 비즈니스 로직과 데이터베이스 연동은 동기적인 방.. 2025. 7. 1. [Spring] Spring MVC & Spring WebFlux 1. Spring MVC (전통적인 블로킹 방식)기반 기술: 서블릿 API (Tomcat, Jetty 등 서블릿 컨테이너 위에서 동작)동작 방식요청당 스레드(Thread-per-request) 모델을 기본으로 합니다.각 HTTP 요청마다 별도의 스레드가 할당되어, 해당 요청이 완료될 때까지 그 스레드가 블로킹(대기)됩니다.I/O 처리JDBC, RestTemplate등 전통적인 블로킹 I/O를 사용합니다. DB 쿼리나 외부 API 호출 시, I/O 작업이 완료될 때까지 스레드가 대기합니다.장점익숙함: 대부분의 자바 개발자에게 익숙한 순차적인 코드 작성 방식쉬운 디버깅: 코드 흐름이 예측 가능하여 디버깅이 비교적 용이함.다양한 라이브러리: 블로킹 기반의 풍부한 라이브러리 생태계.단점스레드 고갈: 동시 요청이.. 2025. 6. 19. [오브젝트 - 코드로 이해하는 객체지향 설계] 4장. 설계 품질과 트레이드오프 (예제에 관한 내용은 빼고 내용 정리)객체지향 설계의 핵심은 역할, 책임, 협력이다.협력 - 애플리케이션의 기능을 구현하기 위해 메시지를 주고받는 객체들 사이의 상호작용책임 - 객체가 다른 객체와 협력하기 위해 수행하는 행동역할 - 대체 가능한 책임의 집합객체지향 설계란 올바른 객체에게 올바른 책임을 할당하면서 낮은 결합도와 높은 응집도를 가진 구조를 창조하는 활동이다.객체지향 설계의 핵심이 책임책임을 할당하는 작업이 응집도와 결합도 같은 설계 품질과 연관됨1. 데이터 중심의 영화 예매 시스템객체지향 설계에서는 두 가지 방법을 이용해 시스템을 객체로 분할할 수 있다.상태를 분할의 축으로 삼는 방법책임을 분할의 축으로 삼는 방법시스템을 분할하기 위해서는 책임에 초점을 맞춰야한다. 객체의 상태는 구현에 속한.. 2025. 5. 13. [Java] 객체지향 설계의 5원칙 - SOLID 좋은 설계란 시스템에 새롤운 요구사항이나 변경사항이 있을 때, 영향을 받는 범위가 적은 구조를 말한다.SOLID 객체 지향 원칙을 적용하면 코드를 확장하고 유지 보수 관리하기가 더 쉬워지며, 불필요한 복잡성을 제거해 리팩토링에 소요되는 시간을 줄임으로써 프로젝트의 개발의 생산성을 높일 수 있다.SOLID는 특정 프로그래밍 언어 혹은 프레임워크를 위해 만든 원칙이 아니다.SOLID 원칙이란 객체지향 설계에서 지켜줘야 할 5개의 소프트웨어 개발 원칙을 말한다.SRP (Single Responsibility Principle): 단일 책임 원칙OCP (Open Closed Principle): 개방 폐쇄 원칙LSP (Listov Substitution Principle): 리스코프 치환 원칙ISP (Inte.. 2025. 4. 7. 이전 1 2 3 4 다음