본문 바로가기

분류 전체보기

(68)
JPA(Java Persistent API) 소개 JPA는 객체와 관계형 데이터베이스 간의 차이를 중간에서 해결해주는 ORM(Object-Relational Mapping) 프레임워크이며, 자바 진영의 ORM 기술 표준이다.  JPA의 장점 지루하고 반복적인 CRUD SQL을 알아서 처리해줄 뿐만 아니라 객체 모델링과 관계형 데이터베이스 사이의 차이점도 해결해준다.개발자는 SQL을 직접 작성하는 것이 아니라 어떤 SQL이 실행될지 생각만 하면된다.성능에 대한 걱정은 네이티브 SQL 기능을 사용해 직접 SQL을 작성할 수 있다.SQL이 아닌 객체 중심으로 개발할 수 있으므로 생산성과 유지보수가 확연히 좋아지며 테스트를 작성하기도 편리해진다.데이터베이스가 변경되어도 코드를 거의 수정하지 않고 데이터베이스를 손쉽게 변경할 수 있다. SQL을 직접 다룰 때 발..
Spring Boot - Lombok LomBok은 반복적이고 지루한 코드를 줄이고 간결하고 가독성 코드를 작성할 수 있도록 도와주는 유용한 라이브러리 이다. 롬복은 어노테이션 기반으로 사용가능 하며 @Getter, @Setter, @NoArgsConstructor, @AllArgsConstructor, @ToString 등과 같은 어노테이션을 제공하여, 접근자 및 설정자, 생성자등의 메서드를 자동으로 생성한다. @Getter, @Setterimport lombok.*; @Getter @Setter public class Person { private String name; private int age; /* Getter와 Setter 메서드를 @Getter, @Setter 어노테이션으로 대체한다. public String getName()..
Spirng Boot - REST API로 CRUD 만들기 Spring Boot REST API를 통한 CRUD를 만들고자 한다. 스프링 개발자라면 필수로 익숙해야 할 것이다. 이번의 CRUD는 Jpa와 mysql를 이용하여 실제 데이터베이스에 적용할 것이다. 먼저 필요한 의존성을 추가해보자. 의존성 추가, application.properties 설정 bulid.gradle dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'mysql:mysql-connector-java' runtimeOnly("com.mysql:..
[자료구조] - 연결 리스트(Linked List)[1] 연결리스트(Linked List)란 연결리스트(Liked List)는 데이터 요소들을 순차적으로 저장하는 선형 자료구조이다. 각 요소는 데이터와 다음 요소를 가리키는 포인터로 이루어져 있다. 따라서 연결 리스트는 메모리에서 연속적으로 할당되지 않는 노드들이 포인터를 통해 연결되어 있는 형태를 가지고 있다. 핵심 특징 동적할당 요소를 추가하거나 삭제할 때마다 필요한 만큼의 메모리를 동적으로 할당하므로, 크기가 동적으로 조절될 수 있다. 삽입 및 삭제 용이성 요소의 삽입 및 삭제가 쉽다. 요소를 삽입할 때는 새로운 요소를 추가하고, 삭제할 때는 해당 요소를 연결에서 제거하면 된다. 메모리의 효율성 연결 리스트는 데이터 요소들이 메모리에서 연속적으로 배치되지 않기 때문에, 데이터 요소들 간의 간격이 듀오적으로..
[Java] Optinal 클래스 사용해보기 Optinal은 자바 8부터 도입된 클래스이다. 값이 존재할 수도 있고 존재하지 않을 수도 있는 경우에 사용된다. null을 직접 다루는 것보다 안전하고 명확한 코드를 작성할 수 있으며 적절히 사용하면 가독성이 좋아진다. of로 옵셔널 객체 생성이 가능하며 get으로 객체를 언박싱 할 수 있다.String a = "hello"; // 옵셔널 객체 생성 Optional optional = Optional.of(a); // String 객체로 꺼내기 System.out.println(optional.get()); ofNullable로 비어있는 옵셔널 객체로도 생성이 가능하다.Optional nullOptional = Optional.ofNullable(null); isPresent로 객체가 비어있는지도 확인..
Spring Security 살펴보기 Spring Security란? Spring Security는 Java 기반의 웹 응용 프로그램 및 서비스에서 보안을 제공하는 프레임워크이다. 주로 Spring 프레임워크 기반의 애플리케이션에서 사용되며, 주로 웹 사이트의 회원을 관리할 때, 인증(Authentication)과 권한 부여(Authorization)를 처리하는 데 사용된다. Spring Security는 다양한 보안 기능을 제공하여 웹 애플리케이션을 안전하게 개발하고 운영할 수 있도록 도와준다. 인증 인증은 사용자가 자신을 식별하고, 그사용자가 주장하는 주체가 맞는지 확인하는 프로세스이다. 인증은 주로 사용자의 신원을 확인하고 검증하기 위해 사용된다. 주로 아이디와 비밀번호, 토큰 등을 제공하여 자신을 인증하며 신원을 확인하고 성공적인 인..
세션, 토큰(JWT), 쿠키 인증을 통해 서비스는 유저를 검증할 수 있다. 인증을 만들어야 한다면 쿠키, 세션, 토큰, JWT라는 인증방법이 있는데 이것들을 알아보자. 쿠키(Cookie) 쿠키를 이용해서 서버는 나의 브라우저에 데이터를 넣을 수 있다. 나의 관한 것을 기억하기 위해서이다. 사이트에 방문하면 브라우저는 서버에 요청을 보내는데, 서버는 이에 응답한다. 응답에는 모든 데이터와 내가 찾던 페이지 정보가 있고, 브라우저에 저장하고자 하는 쿠키가 있을 수 있다. 내가 브라우저에 쿠키를 저장한 후 해당 웹사이트를 방문할 때마다 브라우저는 해당 쿠키도 요청과 함께 보내게 된다. 참고로 쿠키는 도메인에 따라 제한이 된다. 유튜브가 준 쿠키는 유튜브에만 보내지게 된다. 그리고 쿠키는 유효기간이 있다. 하루, 한 달, 혹은 서버가 정한..
스프링 핵심 원리 - 스프링 컨테이너 생성, 빈 조회 스프링 컨테이너 생성 // 컨테이너 사용 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); ApllicationContext를 스프링 컨테이너라 하며, 인터페이스이다. XML을 기반으로 만들 수 있고, 어노테이션 기반의 자바 설정 클래스로 만들 수 있다. AppConfig를 사용했던 방식이 어노테이션 기반의 자바 설정 클래스로 스프링 컨테이너를 만든 것이다. new AnnotationConfigApllicationContext(AppConfig.class) 스프링 컨테이너를 생성할 때는 구성 정보를 지정 해주어야 한다. 여기서는 AppConfig.class를 구성정보로 지정했다. 스..