전체 글 45

데이터 베이스의 락

데이터 베이스에서 락이란여러 트랜잭션이 동시에 같은 데이터를 읽고/수정하려고 할 때 **데이터의 정합성(일관성)**을 지키기 위해 “잠금”을 걸어 접근을 제어하는 메커니즘 핵심은 동시성(성능) ↔ 일관성(정확성) 균형 락이 필요한 대표 상황Lost Update(갱신 분실): A와 B가 같은 행을 읽고 각각 수정 → 나중에 커밋한 값이 앞선 변경을 덮어씀Dirty Read: 아직 커밋 안 된 데이터를 다른 트랜잭션이 읽음Non-repeatable Read / Phantom Read: 같은 조회를 두 번 했는데 중간에 다른 트랜잭션이 수정/삽입해서 결과가 달라짐1) 락의 기본 종류: Shared / ExclusiveShared Lock (S Lock, 읽기 락)“읽을게요” 잠금여러 트랜잭션이 동시에 S락은 ..

Daily Dev Q&A 2026.02.01

http와 https의 차이

1. http HTTP(HyperText Transfer Protocol) 는 웹에서 클라이언트(브라우저) 가 서버 에 “리소스(HTML, JSON, 이미지 등)를 달라”라고 요청하고, 서버가 응답하는 통신 규칙(프로토콜).즉, 웹의 기본 대화 방식. HTTP가 하는 일 (역할)브라우저 → 서버로 요청(Request) 을 보냄서버 → 브라우저로 응답(Response) 을 보냄이 과정을 통해 페이지가 뜨거나(HTML), API 응답(JSON)을 받습니다.HTTP의 핵심 특징1) 요청/응답 구조요청: 메서드 + 경로 + 헤더 + 바디응답: 상태코드 + 헤더 + 바디예) API 호출의 전형적인 흐름GET /users/1 → 유저 정보 달라서버 응답: 200 OK + JSON 바디2) Stateless (무상..

Daily Dev Q&A 2026.01.25

JVM

자바 가상 머신 컴파일된 .class 파일(바이트코드)을 os관계 없이 실행시켜주는 도구 실무에서의 중요도 사용하지 못한다면 : 자바 바이트 코드 실행 불가. -> 모든 자바기반 서비스 동작 불가. 플랫폼 독립성 상실 -> 윈도우, 리눅스 , 맥에 맞게 매번 빌드해야함. 가비지 컬렉션 기반 메모리 관리 기능 소실 -> 메모리 누수 위험 증가 자바 생태계 라이브러리, 프레임워크 사용 불가 -> 스프링기반 웹 서비스 구동 불가 / 마이크로서비스 기반 구조 대부분 장애. 개발 운영 생산성 급락 -> JIT 최적화 , 여러 성능의 튜닝 옵션, 풍부한 모니터링도구(JMX,Flight Recorder)등 사라짐. 금융권 백엔드 시스템, 공공기관 전산시스템, 대규모 웹서비스 등도 자바 기반이기에 사용불가. 최적화/..

Daily Dev Q&A 2026.01.18

application context

“application context”는 스프링(Spring)에서 애플리케이션이 동작하는 데 필요한 모든 객체(Bean)와 설정을 담고 관리하는 컨테이너 ApplicationContext의 역할빈(Bean) 생성/관리: @Component, @Service, @Repository, @Configuration 등으로 등록된 객체를 만들고 주입해줌(DI)설정 로딩: application.yml/properties, @Configuration 설정, 프로파일(dev, prod) 등 반영라이프사이클 관리: 초기화/종료 콜백, 스코프(singleton, request 등) 관리부가 기능 제공: 이벤트 발행/구독, 국제화(i18n), 리소스 로딩 등BeanFactory와의 차이점 BeanFactory는 “빈 관리”..

Daily Dev Q&A 2026.01.16

WAS와 웹서버

1.WAS와 웹서버의 차이 웹서버 (Web Server)역할: HTTP 요청을 받아서 정적인 리소스를 응답예: HTML, CSS, JS, 이미지, 동영상, 다운로드 파일특징정적 파일 서빙에 최적화(빠르고 가벼움)리버스 프록시 기능(요청을 뒤의 서버로 전달), 로드밸런싱, SSL 종료(HTTPS 처리) 등을 자주 담당예시Nginx, Apache HTTP Server, CaddyWAS (Web Application Server)역할: 웹 애플리케이션을 실행해서 동적인 응답을 생성예: 로그인/회원가입, 게시판 CRUD, 결제 처리, 권한 체크, DB 조회 결과로 HTML/JSON 생성 등특징비즈니스 로직 실행 + DB 연동 + 트랜잭션 + 세션/인증 등 “앱” 기능의 중심보통 프레임워크(Spring, Djan..

Daily Dev Q&A 2026.01.11

Garbage Collection

1. Garbage Collection 이란 프로그램이 사용하지 않게 된 메모리(객체)를 자동으로 찾아서 회수해 주는 메모리 관리 기능 자바처럼 객체를 new로 계속 만들면 힙(Heap)에 쌓이는데,그 객체를 더 이상 참조(사용)하지 않으면 메모리를 계속 차지합니다.GC는 이런 “도달 불가능(unreachable)” 객체를 정리해서 힙 공간을 회수합니다. 장점메모리 해제 실수 방지(누수, 이중 해제 등)개발 생산성 ↑단점GC가 돌 때 **일시 정..

Daily Dev Q&A 2026.01.07

자바 가상 머신

자바 가상 머신 컴파일된 .class 파일(바이트코드)을 os관계 없이 실행시켜주는 도구 실무에서의 중요도 사용하지 못한다면 : 자바 바이트 코드 실행 불가. -> 모든 자바기반 서비스 동작 불가. 플랫폼 독립성 상실 -> 윈도우, 리눅스 , 맥에 맞게 매번 빌드해야함. 가비지 컬렉션 기반 메모리 관리 기능 소실 -> 메모리 누수 위험 증가 자바 생태계 라이브러리, 프레임워크 사용 불가 -> 스프링기반 웹 서비스 구동 불가 / 마이크로서비스 기반 구조 대부분 장애. 개발 운영 생산성 급락 -> JIT 최적화 , 여러 성능의 튜닝 옵션, 풍부한 모니터링도구(JMX,Flight Recorder)등 사라짐. 금융권 백엔드 시스템, 공공기관 전산시스템, 대규모 웹서비스 등도 자바 기반이기에 사용불가. 최적화/..

Daily Dev Q&A 2026.01.07

spring의 예외처리방식

1. spring의 예외처리방식 Spring에서 “예외 처리”는 크게 (1) 예외가 전파/롤백되는 방식과 (2) 컨트롤러 계층에서 HTTP 응답으로 바꾸는 방식으로 나눠서 본다. 1) 예외 전파 & 트랜잭션 롤백 규칙 (@Transactional)Unchecked 예외(RuntimeException, Error)→ 기본적으로 트랜잭션 롤백Checked 예외(Exception)→ 기본적으로 롤백 안 함 (커밋될 수 있음)설정 가능:@Transactional(rollbackFor = Exception.class) : 체크 예외도 롤백@Transactional(noRollbackFor = 특정예외.class) : 런타임 예외여도 롤백 제외 가능 주의사항 : 예외를 try-catch로 잡고 삼키면(throw ..

Daily Dev Q&A 2025.12.30

스프링 프레임 워크

1. 스프링 프레임 워크란 **스프링 프레임워크(Spring Framework)**는자바(Java) 기반 엔터프라이즈 애플리케이션을 효율적으로 개발하기 위한 오픈소스 프레임워크입니다.핵심 목적은 객체 간 결합도를 낮추고(유연성↑), 반복 작업을 줄이며(생산성↑), 테스트와 유지보수를 쉽게 만드는 것입니다. 1) IoC (Inversion of Control, 제어의 역전)객체를 개발자가 직접 new 하지 않음스프링 컨테이너가 객체 생성과 생명주기를 관리코드가 프레임워크에 덜 의존 → 변경에 강함@Componentpublic class ServiceA { // 객체 생성 안 함} 2) DI (Dependency Injection, 의존성 주입)객체가 필요한 의존 객체를 외부에서 주입결합도 감소, ..

Daily Dev Q&A 2025.12.22

전원희씨 rest api 피드백

개발자 : 전원희 프로젝트 : ReDeal - 중고 거래 플랫폼 1. 로그아웃시 알림 창이 다수 발생. -> 시연 도중 발생한거라 캡쳐는 없지만 다수 발생하는것을 확인 했습니다. 2. 엔티티 사용시 createdDate과 updatedDate는 공통 엔티티로 뺄수 있을것 같습니다. 3. status 사용시 string보다 enum을 사용하는게 좋을 것 같습니다. 4. 추가적으로 status는 "판매중" , "완료" 같은 한글보다 영어나 코드로 저장하는것이 더 나을것 같습니다. 5. 삭제시 이미 한번 조회를 해온 후라 굳이 ID기반으로 삭제할 필요는 없을 것 같습니다. 의문점1.로그인 / 회원가입시 미리 데이터가 입력되어있는 부분들이 있었는데 왜 그런건지? 2. 현재 git 상 엔티티에 ..

프로젝트 2025.12.22