25년 KSUG에서 주니어 및 취준생 분들과 함께한 스터디 진행 기록입니다.
스프링 프레임워크 혹은 데이터베이스에 대한 스터디를 진행 했고, 저는 스프링 프레임워크를 선택했습니다.
*스프링 프레임워크 가이드 책: 스프링 부트3 핵심 가이드
*데이터 베이스 가이드 책: 새로 쓴 대용량 데이터베이스 솔루션 1기여해주시는 멘토 분들께 항상 감사드립니다.
이번 시간에는
- Spring Boot - 제2장: 개발에 앞서 알면 좋은 지식
- 데이터 베이스 - 1.3장: SQL의 실행 계획
부분을 정리해오기로 했다.
오늘은 스터디 시작 전에 발표를 자원해주신 분들이 계셔서, 비교적 원활하게 진행할 수 있었다.
오늘은 특별히 게스트로 '김근수'님께서 참석해 주셨는데, 발표 내용이 특히 인상 깊었다.
Spring Camp에서도 연사로 발표하셨다고 들었지만, 내가 참석했던 세션은 아니어서 직접 들을 수 없었던 점이 아쉬웠다.
근수님은 평소 마인드맵 형식으로 모든 내용을 정리하신다고 한다. 마인드맵 프로그램을 이용하면 단순히 생각나는 대로 적어도 마우스를 이용해 자유롭게 구조를 바꿀 수 있어 생각을 체계화하는 데에 매우 유용한 툴이라고 느꼈다.
근수님께서는 EdrawMind라는 툴을 쓰신다고 했는데, 유료 서비스라 예전부터 알고 있던 무료 툴인 XMind가 떠올랐다. 일단은 XMind로 시작해보고, 나중에 익숙해지면 블랙프라이데이 때 EdrawMind를 한번 사볼까 한다.
다음 날 바로 실무에 적용해보자는 마음으로, 현재 작업 중인 mevu 서비스 관련 내용을 XMind로 정리하고 앱팀과 회의를 진행했는데, 기획자분도 보기 좋고 회의도 수월하다고 칭찬해 주셔서 뿌듯했다. 아직은 정리 중이지만 마인드맵 가지가 점점 늘어나는 걸 보면서 잘 정리해보고 싶다는 의욕도 생겼다.
또 하나 인상 깊었던 점은 근수님이 모든 책을 이북으로 보신다는 점이다. 이북은 마인드맵으로의 전환이나 복사-붙여넣기가 쉬워 정리에 더 적합해 보였다. 나는 그동안 전공 서적은 종이책으로만 봤는데, 책이 집에 쌓이면서 점점 부담이 되었던 터라 이북 활용도 진지하게 고려해봐야겠다는 생각이 들었다.
이처럼 유용한 팁을 많이 얻을 수 있었던 뜻깊은 스터디 2회차 시간이었다.
아래는 GPT를 이용한 키워드 중심 스터디 요약본이다.
🔸 아키텍처 및 계층 구조
- 3계층 구조 (Layered Architecture)
- Presentation Layer (프레젠테이션 계층): 클라이언트와의 접점, 요청 및 응답 처리
- Business Layer (비즈니스 계층): 비즈니스 로직, 트랜잭션, 유효성 검사
- Persistence Layer (데이터 접근 계층): DB 접근, Repository 사용
- 마이크로서비스 아키텍처(MSA)
- 모놀리식과 비교
- 단순히 서비스 쪼개는 게 아닌 "사상"이 중요
- DTO, Entity, VO 구분
- 레이어 간 데이터 이동을 위한 역할
🔸 디자인 패턴
- 생성 패턴: Abstract Factory, Builder, Factory Method, Singleton 등
- 구조 패턴: Adapter, Composite, Decorator, Facade 등
- 행위 패턴: Chain of Responsibility, Command, Interpreter, Mediator 등
🔸 REST 아키텍처
- REST 특성
- 유니폼 인터페이스
- 무상태성 (Stateless)
- 캐시 가능성
- 클라이언트-서버 구조
- 계층 구조
- RESTful URL 설계 규칙
/
로 끝나지 않음- 하이픈(-) 사용, 언더바(_) 지양
- 명사 사용 (동사 대신 HTTP 메서드로 행위 표현)
- 소문자 사용
- 확장자 지양
- URI vs URL
- URI: 자원의 고유 식별자
- URL: 위치 및 접근 방식 포함한 URI
🔸 인증 및 인가
- Authentication: 사용자 판별 (로그인 등)
- Authorization: 자원 접근 권한 확인
🔸 HTTP 및 HTTPS
- HTTP: 보안 없음
- HTTPS: TLS 기반 보안 제공
- SSL (구버전), TLS (현재 주 사용)
- 포트: HTTP(80), HTTPS(443)
🔸 DispatcherServlet 흐름
- 요청 → DispatcherServlet
- HandlerMapping → Controller
- Service → Repository → DB
- Controller → ViewResolver
- View 반환
🔸 DB 저장 구조 및 최적화
- 분리형 테이블 구조
- 논리적 구조와 물리적 저장 분리
- RowID 활용: 인덱스와 실제 데이터 연결
- IOT (Index Organized Table)
- 인덱스와 데이터를 함께 저장 → 빠른 조회
- 수정 시 데이터 재배치 필요 → 성능 저하
- 클러스터링 테이블
- 데이터 물리적 정렬 (예: 저자명 기준)
- IO 최소화, 조회 성능 향상
- 단점: 쓰기/수정 비용 큼
- 해시 클러스터
- 조회 속도 빠름 (O(1))
- 단점: 레인지 조회 불가, 충돌 발생 가능
- 클러스터링 팩터 (Clustering Factor)
- 인덱스와 실제 데이터의 물리적 거리 척도
- 공간 지역성 높을수록 성능 우수
이번 2회차는 내가 많이 준비하지 못해서 아쉬움이 남는다. 열심히 공부해야지...
이 스터디는 내가 집중해서 공부하고 있는 분야뿐만 아니라, DB를 공부하고 계신 분들도 계셔서 완전히 알지는 못해도 자연스럽게 DB에 대한 내용도 함께 접할 수 있다는 점이 좋은 것 같다.
그럼 이제 3회차 준비하러 가야지... 다음주도 파이팅
'알아두면 좋은 개발 지식 > KSUG' 카테고리의 다른 글
Spring Boot 다국어 서비스 구현하기 (3) | 2025.08.14 |
---|---|
25년 7월 (0) | 2025.08.03 |
스프링 부트에 대한 간단한 고찰 - 2 (4) | 2025.07.31 |
[KSUG] 기초 지식 스터디 1회차 요약 (3) | 2025.07.28 |
스프링 부트에 대한 간단한 고찰 - 1 (4) | 2025.07.24 |