본문 바로가기

멋쟁이사자처럼_부트캠프

(45)
CI/CD 개념 정리 CI/CD는 소프트웨어 개발에서 코드 작성(개발)부터 배포까지의 과정을 자동화해주는 방법론.CI와 CD는 각각 다른 의미지만, 실제로는 하나의 파이프라인처럼 이어져 있음. 1. CI/CD란 무엇인가?CI (지속적 통합): 코드 커밋 시 자동 테스트 & 빌드CD (지속적 배포): 빌드된 결과물을 자동으로 배포왜 필요한가? (협업 효율, 버그 감소, 속도 향상) CI: Continuous Integration (지속적 통합)"모든 개발자가 자주, 매일같이 코드를 공유 저장소에 자주 통합한다."● 핵심 개념머지(merge), 빌드, 테스트의 자동화여러 명이 개발할 때, 코드 병합(merge) 전에 자주 코드를 통합해서 충돌 가능성을 줄임자동 테스트를 돌려서, 올바른 코드인지 검증● 예시누군가 main 브랜치에..
25-04-22 [디버깅 기록] 파라미터 이름을 알 수 없어서 생기는 에러 문제 1. 게시판 {id}페이지 접근시 게시글을 찾을수 없어 오류 메세지가 뜨는 상황.발생현상 : 나의보기에서는 보이는 게시글들이 게시판 상세보기에 접근하면 게시글 없음으로 뜨는 현상 발생. 오류 문구 : java.lang.IllegalArgumentException: Name for argument of type [java.lang.Long] not specified, and parameter name information not available via reflection. Ensure that the compiler uses the '-parameters' flag. 문구 설명 : 스프링이 컨트롤러나 서비스 메서드에서 @RequestParam, @PathVariable, @QueryParam 등으로..
Docker(도커) 개념 정리. 도커(Docker)란?도커(Docker)는 컨테이너(Container) 기반 가상화 기술을 제공하는 오픈소스 플랫폼.애플리케이션과 해당 실행 환경을 컨테이너라는 단위로 패키징하여 어디서든 일관되게 실행할 수 있도록 해줌.  1. 도커의 핵심 개념✅ 컨테이너(Container)애플리케이션과 실행 환경을 격리된 공간에서 실행할 수 있도록 하는 경량 가상화 기술호스트 OS 위에서 실행되며, OS 커널을 공유하므로 기존 가상 머신(VM)보다 가볍고 빠름✅ 이미지(Image)컨테이너 실행에 필요한 코드, 라이브러리, 설정 등을 포함한 불변(Immutable) 파일 시스템컨테이너를 실행하기 위한 템플릿 역할✅ 도커 허브(Docker Hub)공식 및 사용자 생성 도커 이미지를 공유할 수 있는 클라우드 기반의 저장소✅..
[멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 부트캠프 13기: Java 53일차 Spring Security Spring SecuritySpring Security는 애플리케이션의 인증(Authentication)과 인가(Authorization) 기능을 제공하는강력한 보안 프레임워크 1️⃣ 웹 애플리케이션에 보안이 필요한 이유웹 애플리케이션은 다양한 보안 위협에 노출될 수 있음.인증되지 않은 사용자의 접근 차단 (로그인)권한 없는 사용자의 민감한 데이터 접근 차단 (권한 관리)CSRF, XSS, SQL Injection 같은 보안 공격 방어✔ 즉, "누가 시스템을 사용할 수 있는지(인증) + 어떤 데이터를 볼 수 있는지(인가)"를 결정하는 것이 필수.✔ Spring Security는 이러한 보안 기능을 자동화하여 쉽게 적용할 수 있도록 도와줌. 2️⃣ Spring Security가 해결하는 문제들Spring ..
[멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 부트캠프 13기: Java 52일차 Double(래퍼 클래스), 빌더 패턴(Builder Pattern) 기본형(primitive type)과 래퍼 클래스(wrapper class)의 차이🔹 double (기본형, primitive type)8바이트(64비트) 크기의 부동소수점(floating-point) 타입.메모리 사용이 적고 연산 속도가 빠름.null을 저장할 수 없음.Java의 기본 데이터 타입이라서 객체가 아니라 값 자체를 저장함.예제:double pi = 3.14;double result = pi * 2; double은 산술 연산이 빠르지만, 객체처럼 사용하지 못함. 🔹 Double (래퍼 클래스, Wrapper Class)double을 객체로 감싸는 래퍼 클래스.Java의 객체 타입으로 null을 저장할 수 있음.double과 달리 컬렉션(List, Map 등)에 저장 가능.메서드를 제공 (..
[멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 부트캠프 13기: Java 47일차 Spring Data JPA Spring Data JPASpring 프레임워크에서 JPA(Java Persistence API)를 더 쉽게 사용할 수 있도록 도와주는 모듈(프레임워크).기본적인 CRUD 기능을 자동으로 제공하며, 복잡한 쿼리도 간단하게 작성할 수 있도록 지원함.Spring Data JPA (Java Persistence API)는 Spring 프레임워크의 일부로, 자바 개발자들이 관계형 데이터베이스의 데이터 접근을 더욱 용이하게 할 수 있도록 설계되었습니다. 이 모듈은 JPA를 사용하여 데이터 액세스 계층을 쉽게 구현하고 관리할 수 있게 해주며, 복잡한 쿼리를 간단하게 처리하고, 데이터베이스 작업을 자동화하여 개발자의 생산성을 향상시킵니다. 1. Spring Data JPA를 사용하는 이유반복적인 CRUD 작업의 생..
[멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 부트캠프 13기: Java 44일차 JPA JPA (Java Persistence API) : Persistence_지속됨(없어지지 않고 오래 동안) JPA : 인터페이스들의 묶음 = Java 애플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스. 인터페이스는 '규칙'과 같음. JPA는 데이터베이스를 다루는 방법에 대한 표준적인 규칙을 정의해 놓은 것.이 규칙을 따르면 어떤 데이터베이스를 사용하든 Java 코드 변경 없이 데이터베이스를 쉽게 전환할 수 있음.데이터, 그중에서도 특히 엔티티(Entity)의 영속성을 관리하기 위해 쓴다고 보면 됨.JPA에서 객체에 영속성을 부여하는 주요 이유JPA에서 객체에 영속성(Persistence) 을 부여하는 이유는 객체와 데이터베이스 간의 데이터 일관성을 유지하고, 효율적인 데이터 관리를 ..
[멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 부트캠프 13기: Java 43일차 EJB EJB(Enterprise JavaBeans)(Legacy)EJB(Enterprise JavaBeans)는 Java EE(Jakarta EE) 플랫폼의 핵심 기술로, 엔터프라이즈 애플리케이션 개발을 위한 서버 측 컴포넌트 모델입니다. 복잡한 트랜잭션, 보안, 확장성 등을 표준화된 방식으로 처리하기 위해 설계되었으며, 주로 대규모 분산 시스템에 사용됩니다. 1. EJB의 주요 특징컨테이너 관리: EJB 컨테이너가 라이프사이클, 트랜잭션, 보안 등을 자동으로 처리합니다.분산 컴포넌트: 원격 호출(RMI-IIOP)을 통해 다른 시스템과 통신 가능합니다.선언적 프로그래밍: 어노테이션 또는 XML로 설정을 간소화합니다 (예: @Stateless, @TransactionAttribute).2. EJB 유형(1) 세..
[멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 부트캠프 13기: Java 41일차 웹 프로그램 실습-1 다음과같이 initializr로 프로젝트를 생성해주었다.이후 dependencies 체크후 MySQL 워크벤치에서 CREATE TABLE friend (     id SERIAL PRIMARY KEY,     name VARCHAR(255),     email VARCHAR(255) ); 해주고,INSERT INTO friend (name, email) VALUES          ('김민수', 'minsu.kim@example.com'),          ('이하은', 'haeun.lee@example.com'),          ('박서준', 'seojun.park@example.com'),          ('최지우', 'jiwoo.choi@example.com'),          ('정다현', ..
[멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 부트캠프 13기: Java 40일차 스트림 2. 스트림(Stream)스트림(Stream)은 컬렉션(List, Set 등) 데이터를 처리하는 방식 으로, 데이터를 필터링, 변환, 집계하는데 사용됩니다. Java 8부터 지원되며, 내부 반복을 사용하여 코드 가독성과 성능을 높입니다. 스트림의 특징✅ 연속적 처리: 데이터를 하나씩 처리하는 방식(파이프라인)✅ 중간 연산(Intermediate Operation): filter(), map(), sorted() 등✅ 최종 연산(Terminal Operation): collect(), forEach(), reduce() 등✅ 병렬 처리 가능: parallelStream()을 사용하면 병렬 연산 가능람다식 & 스트림을 사용하면 좋은 점✅ 코드가 간결해진다.✅ 가독성이 좋아진다.✅ 병렬 처리 가능 -> 성능 ..