rebase, merge, fetch, pull

Java, JDK, JRE, JVM

Variable, Type, Type casting
Object, Object Oriented Programming, Class, Field, Acces Modifier, Method, Constructor, Package
Inherit, Overriding, Overload
Polymorphism, Abstract Class, Interface, SOLID Principles
Object Class, Reflection, System Class, String/StringBuffer/StringBuilder, Wrapper Class, Date-related Class, Number/Math/Random/UUID
Enum
Annotation
Record
Generic

Collection

Exception

Lambda expression, Functional interface, Method reference, Stream, Optional
Single Responsibility Principle, Open-Closed Principle, Stream API, map, flatMap

data structure, algorithm

File class, Files class, Stream, Data Representation Formats
HashSet
Back-end 개요

Spring Framework
문제 1 \[SB] \[Git을 통한 버전 관리와 협업] 리눅스에서 파일 및 디렉토리를 관리하는 기본 명령어인 mkdir, touch, mv, cp에 대해 각 명령어의 주요 기능과 활용 방법을 비교하여 설명하세요. 각 명령어의 대표적인 옵션과 함께 실제 작업 시나리오에
Q. Spring Framework가 탄생하게 된 배경과 이를 통해 해결하고자 했던 문제점에 대해 설명하세요. A. Spring의 탄생 배경 Q. 프레임워크와 라이브러리의 차이점을 제어 흐름의 주체와 사용 방식을 중심으로 설명하고, Spring Framework와 일반 Java 라이브러리를 예시로 들어 설명하세요. A. 제어 흐름(Control Flow)의...
문제 1 \[SB] \[알고리즘과 자료 구조] File I/O의 주요 클래스들과 그 특징을 설명하고, 자료구조와 결합하여 사용하는 방법에 대해 설명하시오. 내 답변: File: 파일/디렉토리 경로 자체를 표현, 존재 여부, 생성, 삭제 조작 Files: 정적 메서드로
HttpURLConnection, JSON, Jackson, Jsoup

Spring Boot

Spring Boot 프로젝트 구조 Spring Boot 프로젝트의 기본 구조 빌드 및 설정: build.gradle, settings.gradle, Gradle Wrapper 파일로 프로젝트 빌드와 실행 환경을 정의한다 소스 코드: src/main/java에 메인 클

Bean
Thymeleaf
Q. 웹 서버(Web Server)와 WAS(Web Application Server)의 차이를 설명하고, Spring Boot의 내장 톰캣이 이 둘 중 어디에 해당하는지 설명해주세요. A. - 웹 서버(Web Server)와 WAS(Web Application Server)의 차이 Q. Spring Boot에서 사용되는 다양한 Bean 등록 방법들에 대해...
@Controller HTML 뷰 페이지를 반환할 때 사용 (Model 객체로 데이터 전달)@RestController JSON 형식의 데이터를 반환할 때 사용 (API 서버에서 사용)@RequestMapping("/users") 공통 URL 경로를 지정@GetMapp


API란 서로 다른 SW 또는 시스템 간에 기능과 데이터를 교환하기 위하여 정의된 규칙과 명세이다.이는 개발자가 특정 기능을 호출하고, 해당 호출에 관한 결과를 받을 수 있도록 미리 정해진 방법과 형식을 제공함으로써, 서로 다른 구성 요소 간의 원활한 연동을 가능하게

REST의 이해와 실제 활용 웹의 확장성에 대한 고민 1990년대 후반, 웹 애플리케이션의 급격한 확장으로 성능 저하, 확장 한계, 유지보수 문제가 부각됨 당시 주류였던 RPC·SOAP 기반 분산 시스템은 복잡성과 높은 결합도로 인해 변화와 확장이 어려웠다. 이에 단순
비즈니스 로직을 개발할 때 핵심 기능과 부가 기능이 섞여 있으면 다음과 같은 문제가 발생합니다. 예를 들어, 모든 비즈니스 메소드의 실행 시간을 측정해야 한다고 가정해보겠습니다.위와 같은 코드는 다음과 같은 문제를 발생시킵니다:시간 측정 코드가 모든 비즈니스 메소드에
SOAP는 엄격한 XML 기반 프로토콜로, 복잡한 구조와 무거운 메시지 포맷으로 인해 처리 오버헤드가 컸습니다.웹의 성장과 함께 더 가벼운 통신 방식의 필요성이 대두되었습니다.HTTP 프로토콜의 특성을 활용하여 별도의 프로토콜이 불필요합니다.JSON 등 가벼운 데이터

Spring AOP, Interceptor, Filter Spring Filter류 종류 Filter: Servlet 기반으로 동작, URL 기반으로 가장 강력한 필터를 수행함 (모든 요청과 응답) Interceptor: 스프링 기반으로 동작, URL 기반으로 Hand
Spring AOP는 패키지 + 클래스의 메서드 단위로 컨트롤할 수 있다.
데이터베이스(DB)가 없던 시절에는 역사적으로 정보나 데이터를 책의 형태로 관리 되였다.전화번호부나 사전처럼 데이터를 모아 놓은 책이 대표적이고, 사람들은 필요한 정보를 색인(index) 과 순서를 통해 직접 찾아야 했고, 이 과정은 매우 불편하고 시간이 오래 걸렸다.
관계형 데이터베이스에서 데이터를 조회하거나 정의 및 조작하기 위해 사용하는 표준 언어선언형 고급 언어(Declarative High-Level Language)로 고급 언어보다 더 높은 단계의 언어이다.데이터를 무엇을 할지(What) 선언 하면, 어떻게 처리할지(How
주의: SET search_path TO codeit;를 하지 않았다면 반드시 codeit.employee처럼 스키마명.테이블명을 사용하십시오.\*는 급할 때만 쓰십시오. 실무에선 네트워크/메모리 낭비를 줄이기 위해 필요한 컬럼만 명시합니다.이 방식의 장점:반환 컬럼
DB는 보편적으로 일관성 및 무결성 유지를 위해 단일 DB로 설계하는 경우가 많다. (분산 설계는 특수)이 때 함수 사용은 집합 처리•필터링•기본 집계(필요 시 윈도우•다차원 집계)와 같은 결정적•인덱스 친화 영역으로 한정하여, 포맷팅•문자열 결합•복잡한 비즈니스 규칙

GROUP BY는 행을 특정 컬럼 값을 기준으로 그룹화하여 집계 함수와 함께 사용하는 SQL 구문이다.그룹 함수는 단 한 개의 결과 값만 산출하기 때문에 그룹이 여러 개일 경우 오류가 발생하다.여러 개의 결과 값을 산출하기 위해 그룹 함수가 적용될 그룹의 기준을 GRO
DML (INSERT, UPDATE, DELETE) DML(Data Manipulation Language) 데이터 조작 언어로 테이블에 값을 삽입(INSERT), 수정(UPDATE), 삭제(DELETE)하는 구문 INSERT 문 테이블에 새로운 행을 추가하여 테이블
데이터 정의 언어로 객체(OBJECT)를 만들고(CREATE), 수정하고(ALTER), 삭제(DROP)하는 구문을 말함테이블에 정의된 내용을 수정할 때 사용하는 데이터 정의어로 컬럼의 추가/삭제, 제약조건의 추가/삭제, 컬럼의 자료형 변경, DEFAULT 값 변경, 테
DB에 대한 접근 권한 제어에 사용하는 언어로, 각종 권한을 부여, 회수 가능권한 관리를 통해 접근 제어가 가능하며, 보안을 유지하는 기능GRANT(유저 권한 부여), REVOKE(유저 권한 삭제)사용자의 권한이나, 관리자 설정 등을 처리데이터베이스를 사용하기 위한 계

모델링은 현실 세계의 사물, 개념, 과정 등을 단순화하여 표현한 추상적 구조를 만드는 행위이다.복잡한 시스템을 이해·분석·설계하기 위해 필요한 핵심 요소와 관계를 시각적으로 표현하는 과정이다.현실 세계에 활용되는 데이터를 컴퓨터 공간에서 활용하기 위해 목적에 필요한 데

ORM이 등장하기 이전, 관계형 데이터베이스와 연동하기 위해선 주로 JDBC를 사용하였다.이때 객체지향 언어인 Java와 RDB간의 패러다임 불일치 발생하였는데, 객체는 클래스, 상속, 캡슐화, 참조를 기반으로 표현되지만 관계형 데이터베이스는 테이블, 행, 열, 외래키

한번에 수행되어야 할 DB 명령어의 논리적 작업 단위(LUW, Logical Units of Work)를 말한다.하나의 트랜잭션으로 이루어진 작업들은 반드시 한꺼번에 완료가 되어야 하며, 그렇지 않은 경우에는 한번에 취소 되어야 한다. 데이터의 무결성과 신뢰성을 유지를
DDL(Data Definition Language)과 DML(Data Manipulation Language)은 다음과 같은 차이점이 있습니다:데이터베이스의 구조를 정의하고 수정하는 언어입니다.테이블, 뷰, 인덱스 등의 데이터베이스 객체를 생성, 수정, 삭제하는 데
H2 Database는 경량 오픈소스 관계형 데이터베이스(RDBMS)이다.자바 기반으로 작성되어 있으며 jar 파일 하나만으로 실행할 수 있는 임베디드형 데이터베이스이다.테스트 환경이나 애플리케이션 내장용으로 많이 사용되며, MySQL이나 PostgreSQL로 마이그레
각 문제 상황은 실제 웹 서비스 운영에서 자주 발생하는 대표적인 오류 유형이다. 입력 검증 실패, 예외 처리 부족, 자원 고갈, 외부 연동 장애 등은 서비스 안정성과 신뢰성을 저하시킬 수 있다.사용자가 의도적· 비의도적으로 유효하지 않은 데이터(형식 오류, 범위 초과
환경별 설치 및 설정이 수동으로 이루어져 일관성이 보장되지 않고 오류 발생 가능성이 높았다.JDK, DB, 의존성 등을 개별적으로 설치•관리해야 하므로 유지보수와 확장이 어려웠다.서버마다 설정이 달라 재현성과 이식성이 떨어지고 자동화 및 대규모 운영에 한계가 있었다.J
정보 보안(Information Security) 개요 정보보안의 정의와 목적 정보보안은 정보의 기밀성, 무결성, 가용성을 유지하여 불법적인 접근, 변경, 파괴로부터 보호하는 활동이다. 디지털 환경에서 발생하는 사이버 위협과 내부 유출을 방지하기 위해 필수적인 관리·기
토큰 기반 인증의 개념과 필요성 복습 세션 기반 인증의 복습과 한계점 서버 측 세션 저장소의 확장성 문제 기본적으로 세션은 서버가 저장하는 방식이며, 보통 메모리 또는 외부 스토리지에 저장된다. 서버 측 세션 저장소는 서버를 수평 확장할 때 세션 동기화가 필요하다. 로드밸런싱 시 특정 서버에 세션이 묶이는 세션 고정(session stickiness) ...
동기 및 비동기 처리는 시스템이 작업을 수행하는 흐름 제어 방식을 나타냅니다.동기 처리는 요청이 시작된 시점부터 해당 작업이 완료될 때까지 프로그램의 흐름이 차례대로 (순차적으로) 진행되는 실행 방식입니다.개념: 현재 작업이 완전히 끝나야만 다음 작업이 수행될 수 있습
Spring 비동기 처리는 요청 처리 중 오래 걸리는 작업을 별도 스레드로 분리하여 메인 스레드의 점유 시간을 최소화한다.이로 인해 동시 요청이 많은 환경에서도 스레드 고갈을 방지하고 서버 처리량(throughput)을 높일 수 있다.결과적으로 응답 지연 감소, 안정성
전통적인 HTTP 요청—응답 모델은 클라이언트 요청이 있어야만 서버가 응답할 수 있어 서버의 변경 사항을 즉시 전달하기 어렵다.변경을 확인하려면 폴링을 반복해야 하므로 네트워크와 서버 자원이 지소적으로 소모된다. 이러한 구조적 특성 때문에 실시간성을 요구하는 채팅, 알

OAuth는 사용자 자격 증명을 직접 노출하지 않고, 제 3자 애플리케이션이 제한된 권한으로 자원에 접근할 수 있도록 하는 인증 위임 프로토콜이다. Access Token을 기반으로 안전하게 API 자원에 접근할 수 있도록 설계되었다. RFC 6749 표준에 따라 다양

데이터의 입력, 조회, 수정, 삭제(CRUD)를 보다 편하게 하기 위해 xml로 구조화한 Mapper 설정 파일을 통해 JDBC를 구현한 영속성 프레임워크 기존 JDBC를 통해 구현했던 상당 부분의 코드와 파라미터 설정 및 결과 매핑을 xml 설정을 통해 쉽게 구현할