Tiny Bunny
[Git] git branch '브랜치'란?
·
🛠️Backend/Git
Git을 사용할 때 브랜치를 잘 다루는 것은 협업과 버전 관리를 더 유연하고 안정적으로 만들어줍니다.이번 포스팅에서는 브랜치가 뭔지, 그리고 실무에서 자주 쓰는 git branch 명령어를 간단히 정리해보겠습니다.참고: https://git-scm.com/docs/git-branch브랜치브랜치는 Git에서 작업 흐름을 분기하여 독립적으로 개발할 수 있는 기능입니다.즉, 현재 코드(기준점)에서 새로운 줄기를 만들어서, 다른 기능이나 수정 작업을 따로 진행할 수 있게 해줍니다. 예: main 브랜치는 배포용, feature/login 브랜치는 로그인 기능 개발용 등으로 분리해서 작업할 수 있음.자주 쓰는 git branch 명령어# 현재 브랜치 목록 확인git branch# 새로운 브랜치 생성git bran..
[Git] Git Repository Naming Convention 이름 규칙
·
🛠️Backend/Git
Git Repository Naming Convention1. 소문자를 사용해라 (use lower case) 2. 대시(-)를 사용해라 (use dashes)3. 명확하게 작성해라 (be specific)4. 일관성있게 작성해라 (be consistent) 1️⃣ 소문자를 사용해라(use lower case)리포지터리 이름은 소문자로 작성하자.GitHub는 대소문자를 구분하긴 하지만, 브라우저 URL에서는 자동으로 소문자로 변환되기도 하고,팀 협업이나 검색 시 혼란을 줄 수도 있음.❌ MyFirstProject →✅ my-first-project 2️⃣ 대시(-)를 사용해라(use dashes)여러 단어를 연결할 때는 언더바(_)나 카멜표기법(camelCase) 대신 하이픈(-)을 쓰는 게 깔끔하고 ..
[Spring Boot] JWT (1) JSON Web Token
·
🛠️Backend/Java | Spring
JWT(JSON Web Token)JWT는 사용자 인증을 위한 토큰 기반 방식입니다.기존의 세션 방식보다 가볍고 확장성이 뛰어나며, 서버 부하가 적습니다.1. 기존 세션 방식 vs JWT 방식웹에서 로그인 인증을 할 때, 기존의 세션 방식과 JWT 방식의 차이점을 먼저 살펴보겠습니다.기존 세션 방식 (Session-based Authentication)사용자가 로그인하면 서버가 세션을 생성하여 사용자 정보를 저장이후 요청마다 세션 ID를 포함하여 서버에서 인증 확인서버가 세션을 저장해야 하므로 확장성이 낮음 (부하 증가!)JWT 방식 (Token-based Authentication)사용자가 로그인하면 서버가 JWT(토큰)를 발급이후 요청마다 JWT를 포함하여 인증서버가 세션을 저장할 필요 없음 (확장성..
[Spring Boot] Bank App (14) 파일 업로드 2단계
·
🛠️Backend/Java | Spring
Spring Boot에서 정적 리소스를 관리하는 방법 이해WebMvcConfig에서 addResourceHandlers()를 활용해 정적 파일 접근 경로 설정회원가입 시 업로드된 프로필 이미지를 웹 페이지에서 표시하는 방법 구현파일 업로드 경로를 application.yml을 이용해 동적으로 설정하는 방법 학습 1. Spring Boot에서 정적 리소스를 관리하는 방법 🔍웹 애플리케이션에서는 이미지, CSS, JS 등의 정적 리소스를 관리할 필요가 있습니다.Spring Boot에서는 기본적으로 static 폴더 내의 파일을 정적 리소스로 제공합니다.그러나 사용자가 직접 업로드한 이미지 파일을 웹 페이지에서 표시하려면 별도의 설정이 필요합니다.이를 위해 Spring의 WebMvcConfigurer를 활용..
[Spring Boot] Bank App (13) 파일 업로드 1단계 (Multipart)
·
🛠️Backend/Java | Spring
멀티파트(Multipart)의 개념과 HTTP 요청 방식 이해Spring Boot에서 멀티파트 요청 처리하기회원가입 시 파일 업로드 기능 구현전체 코드 흐름과 실행 과정 확인1. 멀티파트(Multipart)멀티파트(Multipart)는 웹에서 파일을 업로드할 때 사용하는 데이터 전송 방식입니다."멀티파트"라는 이름에서 알 수 있듯이, 하나의 HTTP 요청에 여러 개의 데이터를 포함할 수 있습니다.HTTP 요청의 기본 구조HTTP 요청은 크게 세 가지 부분으로 구성됩니다.[1] 시작 라인 (Start Line) [2] 헤더 (Headers) [3] 바디 (Body) 1.1 일반적인 HTTP 요청 예시✅ 텍스트 기반 요청 (단순 POST 요청) POST /example HTTP/1.1Host: examp..
[Spring Boot] Bank App (12) 사용자 비밀번호 암호화 처리
·
🛠️Backend/Java | Spring
SpringSecurityCrypto 의존성 추가 및 BCryptPasswordEncoder 빈 등록회원가입 시 비밀번호를 안전하게 암호화하여 저장로그인 시 암호화된 비밀번호를 검증하는 기능 추가전체 코드 확인 및 실행 흐름 이해🚨 주의비밀번호 암호화 후에는 기존 H2 데이터베이스에 저장된 유저로 로그인할 수 없습니다.비밀번호 검증 방식이 변경되었으므로, 반드시 새로운 유저를 가입한 후 테스트하세요.1. Spring Security 의존성 추가하기먼저, Spring Security의 암호화 기능을 사용하기 위해 Gradle에 의존성을 추가해야 합니다. Gradle 설정 (build.gradle)// Spring Security 암호화 기능 추가implementation 'org.springframewo..
[Spring Boot] Bank App (11) intercepter 활용(인증검사 공통 처리)
·
🛠️Backend/Java | Spring
1. 인터셉터(Interceptor)란?Spring MVC의 핵심 기능 중 하나로, 웹 애플리케이션의 공통 처리 로직을 재사용할 수 있도록 돕는 기능입니다.인터셉터는 요청(Request)이 컨트롤러에 도달하기 전/후에 특정 로직을 실행할 수 있도록 합니다.이는 AOP(Aspect-Oriented Programming)의 한 형태로 볼 수 있습니다.인터셉터의 주요 목적1. 인증 및 권한 부여로그인한 사용자만 특정 요청을 수행할 수 있도록 제한2. 로깅 및 감사(Auditing)요청 및 응답에 대한 로깅을 수행하여 시스템 보안 강화3. 성능 모니터링요청 처리 시간을 측정하여 성능 최적화에 활용4. 공통 응답 데이터 추가모든 응답에 공통적인 데이터를 포함 (예: 헤더 설정)인터셉터의 동작 흐름1️⃣ preHa..
[Spring Boot] Bank App (10) 계좌 상세보기 페이징 처리
·
🛠️Backend/Java | Spring
1. 개요웹 애플리케이션에서 많은 데이터를 한 번에 불러오면 속도 저하와 과부하가 발생할 수 있습니다.이를 해결하기 위해 페이징(Pagination) 기법을 사용하여 일정 개수의 데이터만 조회하고, 필요할 때 추가로 불러오도록 합니다.2. 부트스트랩의 그리드 시스템부트스트랩의 그리드 시스템은 화면을 12개의 컬럼으로 분할하여 반응형 웹 페이지를 쉽게 구성할 수 있도록 돕습니다.col-sm-8 → 작은 화면에서는 8개의 컬럼을 차지하는 레이아웃col-md-6 → 중간 화면에서는 6개의 컬럼을 차지하는 레이아웃 왼쪽 콘텐츠 오른쪽 콘텐츠 3. 플렉스박스(Flexbox)와 중앙 정렬플렉스박스(Flexbox)는 요소를 쉽게 정렬하고 배치할 수 있는 CSS 레이아웃 모델입니다..
[Spring Boot] 스프링 부트 동작 과정 다시 생각해보기
·
🛠️Backend/Java | Spring
이번 포스팅에서는 스프링 부트가 어떻게 동작하는지 단계별로 차근차근 살펴보겠습니다.1. JVM 실행 → Gradle 빌드된 .jar 실행우리가 만든 스프링 부트 애플리케이션은 .jar 파일로 빌드됩니다.이 .jar 파일이 실행되면, JVM(Java Virtual Machine)이 이를 읽고 애플리케이션을 시작합니다.2. 스프링 부트 초기화 (SpringApplication.run())main() 함수에서 SpringApplication.run(Application.class, args)를 호출하면 스프링 부트의 초기화 과정이 시작됩니다.이 과정에서 Spring Boot의 자동 설정(Auto Configuration), 애플리케이션 컨텍스트(Application Context) 생성 등이 이루어집니다. @..
[Spring Boot] Bank App (9) 계좌 상세보기
·
🛠️Backend/Java | Spring
이번에는 계좌 상세 보기 기능을 단계별로 구현하는 방법을 설명하겠습니다.계좌 상세 보기를 통해 특정 계좌의 입금, 출금, 이체 내역을 확인할 수 있습니다.사용자는 전체 거래 내역 또는 특정 유형(입금, 출금)만 필터링할 수도 있습니다. 계좌 상세 보기: 특정 계좌의 거래 내역을 확인하는 기능입니다.유형별 조회: 모든 거래, 입금만, 출금만 보기 기능을 제공합니다.목표: 계좌 번호와 사용자의 인증 상태를 확인하고, DB에서 내역을 조회하여 화면에 출력합니다.1. 데이터베이스 테이블 생성테이블 구조 create table user_tb( id int auto_increment primary key, username varchar(50) not null unique, password varchar(1..