본문 바로가기

분류 전체보기150

데이터베이스 1,2,3 정규화 개념 데이터베이스 1,2,3 정규화 정규화는 중복 최소화와 데이터 무결성 확보를 위해 필수적인 개념입니다. 1NF, 2NF, 3NF 각각 1정규화 부터 3정규화까지의 원칙과 예시를 통해 학습 해보겠습니다. 1. 정규화란?정규화(Normalization) 는 관계형 데이터베이스에서 중복을 줄이고 데이터 일관성을 유지하기 위해 테이블을 구조적으로 분해하는 과정입니다.중복 데이터 제거이상현상(삽입, 삭제, 갱신 이상) 방지데이터 무결성 유지유지 보수 용이 정규화는 단계적으로 진행되며 1NF -> 2NF -> 3NF 까지 적용하는것이 일반적입니다. 1NF : 제 1정규화 (원자값)1정규화는 모든 속성이 원자값(Atomic Value)만 가져야 한다는 원칙 입니다.원자값이란 하나의 셀에는 하나의 값만 있어야 한다는 뜻.. 2025. 6. 7.
Spring vs SpringBoot 비교, 차이점 알아보기 Spring vs SpringBoot 비교해보기 이번 글에서는 Spring, SpringBoot의 차이점을 알아보겠습니다. Spring, SpringBoot 소개Spring FrameworkSpring은 자바 기반의 애플리케이션 개발을 위한 오픈소스 프레임워크 입니다. 주요 특징의존성 주입(DI), AOP, 트랜잭션 관리, 보안, 웹 MVC유연하고 확장 가능한 구조개발자가 직접 설정해야하는 부분이 많음 Spring BootSpringBoot는 Spring 프레임워크를 쉽게 사용할수 있도록 AutoConfigutration, 의존성 관리, 내장 Tomcat 서버 제공등을 포함한 프레임워크 입니다. 주요 특징설정없이 Spring 실행 가능내장 Tomcat 으로 웹서버 실행 가능운영 및 모니터링 기능 내장(S.. 2025. 6. 4.
Spring Boot CORS 사용 목적과 브라우저 보안 SOP Spring Boot CORS CORS(Cross Origin Resource Sharing) 는 프론트와 백엔드가 분리된 요즘 웹환경에서 필수로 이해해야 하는 개념입니다. CORS란?CORS는 다른 도메인간의 HTTP 요청을 허용할지 말지를 서버가 명시적으로 제어할수 있게 해주는 보안 정책입니다.프론트엔드: http://localhost:3000백엔드 : http://localhost:8080 위와 같은 설정에서 도메인/포트가 다르면 크로스 오리진 요청 으로 간주되며 브라우저는 보안상 기본적으로 이 요청을 차단합니다. 서버에서 CORS 허용을 명시해야만 요청이 성공합니다.이는 허용된 도메인만 접근 가능하게 하는 Access Control List 역할을 수행하는 것입니다.서버가 Access-Contro.. 2025. 6. 4.
Spring Boot의 HTTP 요청 처리 과정: 필터부터 AOP까지 HTTP 요청이 컨트롤러까지 오는 과정 웹 애플리케이션을 개발하다 보면, 클라이언트에서 API 요청이 들어와서 컨트롤러에 도달하고, 다시 응답이 돌아가는 과정이 어떻게 내부적으로 흘러가는지 궁금할 때가 많습니다. 이번 글에서는 Spring Boot 기반 애플리케이션에서 HTTP 요청이 지나가는 전체 흐름을 Filter → DispatcherServlet → Interceptor → AOP → Controller 순서로 각 단계에서 어떤 역할을 하는지 정리해보겠습니다. 전체 흐름 요약[클라이언트 요청]↓Filter (Servlet API)↓[DispatcherServlet]↓Interceptor↓AOP (Aspect-Oriented Programming)↓Controller (@RestController,.. 2025. 4. 16.
@TypeDef, @Type 전환 SpringBoot 3.x 마이그레이션 가이드 @TypeDef (Hibernate 5.x)@TypeDef는 Hibernate에서 사용자 정의 데이터 타입을 정의할 때 사용하는 어노테이션입니다.JPA에서는 문자열, 숫자, 날짜 등 기본적인 타입만 매핑할 수 있기 때문에, JSON, Enum과 같은 복잡한 타입을 처리하기 위해서는 Hibernate에서 해당 타입을 어떻게 매핑할 것인지 명시적으로 알려줘야 합니다. 이럴 때 @TypeDef를 사용하여 사용자 정의 타입을 등록하고, 실제 필드에는 @Type을 사용하여 적용합니다. 언제 사용하는가?엔티티 필드가 기본적인 타입이 아닌 경우, Hibernate는 해당 필드를 어떻게 DB에 저장하고 다시 Java 객체로 매핑할지 알 수 없습니다. 이런 경우 @TypeDef로 사용자 정의 타입을 등록하고, @Type.. 2025. 4. 15.
[백준 1260] DFS와 BFS 문제풀이 문제 링크: https://www.acmicpc.net/problem/1260 문제그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다. 입력첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다. 입력으로 주어지는 간선은 양방향이다. 출력첫째 줄에 DFS를 수행한 결과를, 그 다음 줄에는 BFS.. 2025. 4. 10.
Linux alternatives JDK 버전 관리하기 Linux에서 여러 버전의 소프트웨어 설치후 기본 버전을 설정할때 alternatives 명령어를 사용합니다.이 글에서는 alternatives 명령어를 활용해 여러 버전의 JDK를 관리하는 방법을 설명합니다. alternatives ?Linux의 alternatives는 Linux에서 여러 버전의 프로그램이 있을 때 기본으로 사용할 버전을 선택하고 관리하는 데 사용됩니다 JDK 여러 버전 설치하기JDK의 다양한 버전을 설치하려면 각 버전을 수동으로 다운로드하여 설치하거나, 패키지 관리자를 통해 설치할 수 있습니다. 예시로 jdk 8, 11 두가지 버전을 설치 해보겠습니다. 1. JDK 설치설치가 완료되면 각 JDK 버전의 경로를 확인합니다. 일반적으로 JDK는 /usr/lib/jvm 경로에 설치됩니다... 2025. 4. 7.
Wiondow 10,11 WSL 설치하기 + Docker 설치 집컴에서 리눅스 환경을 쓸 필요가 생겨서 WSL를 설치하게 되었는데 설치과정 설명과 추가로 WSL 환경에서 Docker 설치 방법까지 가이드 글을 해보겠습니다. 🐧WSL2 설치하기우선 WSL 이란 Windows Subsystem for Linux 의 약자로 윈도우 환경에서 Linux OS를 네이티브 환경처럼 실행할수 있게 해주는 방식입니다. WSL 설치 순서 실행창에서 Windows 기능 끄기/켜기 옵션으로 이동한다음 아래 두개 항목을 체크 활성화후 재부팅 합니다.Linux용 Windows 하위 시스템가상 머신 플랫폼 Windows Powershell 을 관리자권한으로 실행후 wsl --list --online 명령으로 설치가능한 Linux OS를 확인합니다.설치할 OS에 대해 wsl --install.. 2025. 4. 6.