✅ Join
• 데이터 중복 저장을 피하기 위해 여러 테이블에 나누어 저장 (정규화)
• 테이블 간의 관계(Relationship)를 통해 원하는 데이터를 도출
• 관련 컬럼을 기준으로 여러 테이블의 행을 결합
✅ 정규화
• 데이터 중복 제거, 저장 공간 절약
• 테이블 분할 → 관계형 구조 생성
✅ Index (DB)
• 테이블 검색 속도 향상을 위한 자료구조
• 성능을 높이지만, 추가적인 쓰기 작업과 저장 공간 필요
✅ SW 디자인 패턴 (GoF 디자인 패턴)
• 효율적인 설계와 유지보수를 위한 구조적 개발 방법론
• 대표 패턴 : MVC, Singleton, Template, Factory 등
✅ MVC 패턴
• 관심사 분리로 코드 구조 명확화
• UI, 로직 분리 → 독립적 유지보수 가능
• 생산성과 유지보수성 향상
✅ Singleton 패턴
• 하나의 클래스 인스턴스를 한 번만 생성
• 이후에는 기존 인스턴스를 재사용
✅ Template 패턴
• 알고리즘의 뼈대를 정의하고 세부 단계만 재정의
• 공통된 처리 흐름 유지, 중복 코드 제거
• Ex) JDBCTemplate, MyBatis
✅ Factory 패턴
• 객체 생성 책임을 서브클래스로 위임
• 객체 생성을 캡슐화하여 유연성 확보
✅ 메모리 영역
• Stack, Heap, Data 세 가지로 구분
• 용도별로 변수와 객체가 배치됨
✅ 데이터 영역
• 전역 변수, static 변수 저장
• 프로그램 시작 시 할당, 종료 시 소멸
✅ 스택 영역
• 지역 변수, 매개변수 저장
• 함수 호출 시 할당, 종료 시 소멸
• 컴파일 타임에 크기 결정
✅ 힙 영역
• 런타임 중 동적으로 메모리 할당
• 객체 저장 영역, GC에 의해 관리됨
✅ Transaction
• 더 이상 나눌 수 없는 최소 작업 단위
• 성공 시 commit, 실패 시 rollback
• Ex) 카카오페이 결제 → 포인트 차감, 결제 승인 등 일괄 처리 보장
✅ JDBC (Java Database Connectivity)
• Java와 DB를 연결하는 표준 API
• SQL 실행 및 결과 처리 기능 제공
• 드라이버를 통해 DBMS와 연결
✅ Servlet vs JSP
• Servlet : Java 코드 안에 HTML
• JSP : HTML 안에 Java 코드
• JSP는 Servlet으로 변환되어 실행됨
✅ Server vs Client
• Server : 요청을 처리하고 응답을 반환하는 시스템
• Client : 사용자 측, 웹 브라우저
• 클라이언트가 요청(request) → 서버가 응답(response)
✅ Framework vs Library
• Framework : 개발의 골격, 흐름을 자체가 제어 (IoC) → Ex) Spring
• Library : 필요 시 호출하는 유틸성 코드 모음 → Ex) jQuery
✅ 에러 vs 예외
• 에러 : 시스템 오류, 복구 불가 → StackOverflowError
• 예외 : 코드로 처리 가능한 상황 → NPE, IndexOutOfBounds
✅ 생성자
• 클래스와 동일한 이름의 메서드
• 객체 생성 시 호출됨 (new 키워드 사용)
• 디폴트 생성자 존재, 오버로딩 가능
✅ CORS (Cross-Origin Resource Sharing)
• 다른 출처의 자원에 접근할 수 있게 해주는 브라우저 보안 정책
• 서버에서 허용해야 다른 출처에서 접근 가능
✅ Spring vs Spring Boot
• Spring Boot : Spring 설정 자동화
• 내장 톰캣 포함, 실행 간편화
• 프로덕션 수준의 환경 빠르게 구축 가능
✅ Session vs Cookie
• Session : 서버 저장, 브라우저 종료 시 삭제, 보안에 유리
• Cookie : 클라이언트(브라우저) 저장, 유효기간 설정 가능
• 로그인, 장바구니 등 상태 정보 저장에 사용
✅ 스레드 (Thread)
• 프로세스 내에서 실행되는 단위
• 하나의 프로세스는 여러 스레드 가짐 가능
✅ 멀티 스레드 (Multi-Thread)
• 하나의 프로그램에서 동시에 여러 작업 수행
• 자원 공유로 성능 효율적, 응답성 향상
• 동기화 필요, 과도한 Lock은 병목 발생
✅ NoSQL
• 비관계형/분산형 DB
• 스키마 없음, Join 불가
• 대용량/비정형 데이터 처리에 적합
• 클러스터 기반 확장성 우수
• 클리스터링 : 사전에 정의된 레이블 없이 데이터를 분석하여, 내부 구조나 패턴을 기반으로 그룹을 형성하는 것
✅ Node.js
• JS 기반의 서버 사이드 플랫폼
• 자체 HTTP 서버 보유
• 이벤트 기반, 논블로킹 I/O
✅ Bean (Spring)
• Spring 컨테이너가 생성 및 관리하는 객체
• 설정에 따라 자동 생성되어 재사용 가능
• 예: LoginController, BoardServiceImpl 등
✅ Garbage Collector (GC)
• 불필요한 객체를 JVM이 자동으로 제거
• 메모리 누수 방지
• 개발자는 직접 메모리 해제하지 않음
'✅ Spring_' 카테고리의 다른 글
📚 Spring 정리 : 핵심 개념 정리 (1) | 2025.06.08 |
---|---|
🛠 조합상품 할인율 – 진짜 할인율로 보여줘야 하는 이유? (0) | 2025.05.30 |
🔒 Spring 트랜잭션 : 실무에서 쓰는 진짜 개념만 정리 (0) | 2025.05.03 |
DAO 버전 업 : JDBC → Template 패턴으로 업그레이드하는 방법 (0) | 2025.04.28 |
서블릿에서 Spring 전환 시 JSONObject 사용 방식 때문에 발생한 응답 오류 해결하기 (0) | 2025.04.27 |