분류 전체보기 54

영속성과 영속성 컨텍스트에 대하여

1. 영속성이란 무엇인가?영속성(Persistence)은 쉽게 말해 데이터가 프로그램이 종료되어도 살아남는 상태를 말합니다. 즉, 데이터를 메모리(RAM)뿐 아니라 디스크(DB) 같은 영구 저장소에 보존하는 것과 관련된 개념이에요.예시자바 객체만 메모리에 있으면 → 프로그램 종료 시 모두 날아감 → 비영속 상태DB에 저장해서 나중에 다시 꺼낼 수 있으면 → 영속 상태→ 영속성은 “데이터를 지속적으로 저장할 수 있게 만드는 성질”이라고 이해하면 됩니다. 2. 영속성 컨텍스트란 무엇인가?영속성 컨텍스트(Persistence Context)는 JPA에서 매우 중요한 개념이에요. 정의:영속성 컨텍스트는 엔티티(Entity)를 관리하는 메모리상의 공간(캐시)입니다.JPA가 엔티티를 저장, 조회, 수정, 삭제할 때..

JPA 2025.07.14

JPA와 MyBatis

JPA는 자바 ORM(Object-Relational Mapping) 표준 인터페이스입니다.즉, 자바 객체와 데이터베이스 테이블을 자동으로 매핑해주는 역할을 합니다.특징SQL을 직접 작성하지 않고, 객체 중심으로 데이터 처리@Entity, @Id, @OneToMany 같은 어노테이션으로 매핑대표 구현체: Hibernate, EclipseLink쿼리 언어(JPQL, Native Query) (SELECT u FROM User u WHERE u.name = :name)CRUD 자동화: JpaRepository 등을 통해 기본 CRUD 메서드 자동 제공1차 캐시(영속성 컨텍스트)로 트랜잭션 범위 내 같은 객체는 중복 쿼리 안 함@Entitypublic class User { @Id @GeneratedVa..

JPA 2025.06.30

SpringBoot VS Spring

Spring Framework는 Java 기반의 엔터프라이즈 애플리케이션 개발을 위한 오픈소스 프레임워크입니다.Java EE(현 Jakarta EE)의 복잡함을 줄이기 위해 등장했으며, 객체지향 원칙에 충실하게 설계된 구조 덕분에 많은 개발자들이 사용하고 있습니다.Spring의 특징IoC (제어의 역전)객체의 생성과 관리를 개발자가 아닌 프레임워크가 맡습니다.// 일반적인 방식UserService service = new UserService(); // IoC 방식 (Spring이 관리)@Componentpublic class UserService { public void join() { System.out.println("회원 가입 로직"); }}// 사용@AutowiredUse..

JAVA 2025.06.16

EC2 생성 및 활용

1. 웹 서버 구성 및 배포 반복 실습EC2 메뉴에서 인스턴스를 찾아 인스턴스 시작을 누르면 다음과 같은 페이지가 뜨면서 인스턴스 생성을 할 수 있다.이름을 설정하고 AMI는 Amazon Linux 2023로 설정하도록 하겠다. 인스턴스 유형은 t2.micro로 설정했다. 키 페어는 키 없음(임시용)으로 설정하였고, 정식 운영 시에는 반드시 키페어 설정이 필요하다. 보안 그룹은 새로 생성하고 다음과 같이 설정하였다. 보안을 위해 SSH는 내 IP만 허용하도록 설정하였다. 작성한 내용들을 모두 확인 후 인스턴스 시작 클릭을 하면 다음과 같이 실행 중인 것을 확인할 수 있다. 다음 명령어를 입력해서 Apache 웹 서버 설치 및 설정을 하도록 한다. 다음과 같이 테스트용 웹 페이지를 생성하고 입력하고 싶은..

AWS 2025.06.10

DAY 20

🔹 Keep (계속할 것)다른 사람에게 설명할 수 있을 정도의 수준으로 개념을 확실하게 이해하기학원 지각, 결석 하지말기배웠던 개념들 말로 설명할 수 있을 정도로 확실하게 이해하기 🔹 Problem (문제였던 것)JPA-react 연동이 금방 끝날 줄 알고 뒤늦게 시작했는데 에러도 많이 나고 생각보다 쉽지 않았다. 오늘까지 끝내도록 하자.SQLD 공부를 아직 시작 못 했다. 오늘부터 진짜로 시작할거다. 진짜로.(일주일 째 이 말 중)늦게 자서 너무 졸리다.. 일찍 자자.. 🔹 Try (시도할 것)복습을 열심히 하자오늘의 주제 잘 공부하기밤 10시에 취침하는 습관을 가져보자sqld 시험 준비(중요)리액트 다루는게 아직 많이 미숙한데 연습해야겠다(중요)

KPT 회고록 2025.05.26

프록시 패턴과 AOP

1. 프록시 패턴 (Proxy Pattern)정의:프록시 패턴은 어떤 객체에 대한 접근을 제어하기 위해, 그 객체를 대신하는 ‘대리인(Proxy)’ 객체를 두는 디자인 패턴입니다.역할:실제 객체에 접근하기 전에 추가 작업(예: 접근 제어, 캐싱, 로깅, 지연 초기화 등)을 수행합니다.예시:원격 객체에 대한 접근을 대리하는 원격 프록시접근 권한 검사를 하는 보호 프록시무거운 객체를 필요할 때만 생성하는 지연 로딩 프록시 등 프록시 패턴의 장점 장점 설명접근 제어객체에 대한 접근을 제어할 수 있습니다. (예: 권한 검사)부가기능 추가원본 객체의 기능에 부가적인 기능을 추가할 수 있습니다. (예: 로깅, 캐싱 등)지연 초기화실제 객체를 나중에 생성하여 성능을 최적화할 수 있습니다. (예: 무거운 객체 로딩..

JAVA 2025.05.26

DAY 19

🔹 Keep (계속할 것)다른 사람에게 설명할 수 있을 정도의 수준으로 개념을 확실하게 이해하기학원 지각, 결석 하지말기배웠던 개념들 말로 설명할 수 있을 정도로 확실하게 이해하기 🔹 Problem (문제였던 것)1시에 잠들었는데 3시반에 눈이 떠졌다. 그리고 6시에 잠들었는데 몸이 왜이러는지 모르겠다. 무릎도 아프고...아직 젊은데...어제 했던 게시글 파트를 복습했는데 코드는 전부 이해가 가는데 게시글 등록이 과정이 너무 많다. 여러번 읽어보고 학습하자. SQLD 공부를 아직 시작 못 했다. 오늘부터 진짜로 시작할거다. 진짜로. 🔹 Try (시도할 것)복습을 열심히 하자오늘의 주제 잘 공부하기밤 10시에 취침하는 습관을 가져보자sqld 시험 준비리액트 다루는게 아직 많이 미숙한데 연습해야겠다

카테고리 없음 2025.05.21

POJO

POJO란?POJO는 Plain Old Java Object의 약자로,단순하고 일반적인 자바 객체를 의미합니다. POJO의 특징특별한 상속이나 구현 없이, 그냥 일반적인 자바 클래스(객체)이다.보통 필드(private) + getter/setter + 기본 생성자 형태를 가진다.JavaBean과 비슷하지만, JavaBean이 되려면 좀 더 엄격한 규칙(Serializable 구현, 기본 생성자 필수 등)이 필요하지만 POJO는 그런 제약이 없다.프레임워크에 종속적이지 않고, 특정 어노테이션이나 인터페이스를 꼭 구현하지 않아도 됨. POJO 예시 public class User { private String name; private int age; public User() {} // 기본..

JAVA 2025.05.21

DAY 18

🔹 Keep (계속할 것)다른 사람에게 설명할 수 있을 정도의 수준으로 개념을 확실하게 이해하기학원 지각, 결석 하지말기배웠던 개념들 말로 설명할 수 있을 정도로 확실하게 이해하기 🔹 Problem (문제였던 것)아직 NOTICE의 검색 기능구현을 안 했다 이거 쓰고 바로 해야겠다.6시간 잤는데도 너무 졸리다. 커피 수혈로 버텨보자 🔹 Try (시도할 것)복습을 열심히 하자오늘의 주제 잘 공부하기밤 10시에 취침하는 습관을 가져보자sqld 시험 준비리액트 다루는게 아직 많이 미숙한데 연습해야겠다

KPT 회고록 2025.05.20

스프링 프레임워크(Spring Framework)란?

Spring Framework(스프링 프레임워크)는 자바(Java) 기반의 오픈소스 애플리케이션 프레임워크로, 대규모 웹 애플리케이션을 효율적으로 개발할 수 있게 도와주는 도구입니다. 핵심 목적은 개발자가 비즈니스 로직에 집중할 수 있도록 반복적이고 복잡한 작업을 줄여주는 것입니다. 스프링 프레임워크의 핵심 개념 1. IoC (Inversion of Control, 제어의 역전)객체 생성과 의존성 관리를 개발자가 아닌 스프링 컨테이너가 대신 해주는 개념대표 기술: DI (Dependency Injection, 의존성 주입)@Componentpublic class UserRepository { public String findUser() { return "홍길동"; }}@Servi..

2025.05.20