본문 바로가기

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

(54)
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()을 사용하면 병렬 연산 가능람다식 & 스트림을 사용하면 좋은 점✅ 코드가 간결해진다.✅ 가독성이 좋아진다.✅ 병렬 처리 가능 -> 성능 ..
[멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 부트캠프 13기: Java 39일차 람다식 1. 람다식(Lambda Expression)람다식은 익명 함수(Anonymous Function) 를 작성하는 간결한 방법으로, Java 8부터 도입되었습니다. 이를 활용하면 코드가 더 간결해지고 가독성이 향상됩니다. 기본 문법 : (매개변수) -> { 실행 코드 }예제: 기존 방식과 비교(1) 익명 클래스 방식// Runnable 인터페이스를 익명 클래스로 구현Runnable runnable = new Runnable() { @Override public void run() { System.out.println("Hello, World!"); }}; (2) 람다식 사용Runnable runnable = () -> System.out.println("Hello, World!..