Java
-
평소에 자주쓰는 어노테이션, 헷갈리는 개념들 여기서 정리하고 넘어간다. ⛅️ Intro개발을 진행하며 @NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor 이 세개의 어노테이션을 종종 사용했다. 비슷한 맥락의 코드에 주로 사용하긴 했지만 가끔 헷갈리는 경우가 발생한다. 이게 뭐지 .. 이게 뭐였지 하며 매번 구글링을 하는 나를 위해 정리하고 넘어간다. @NoArgsConstructor@RequiredArgsConstructor@AllArgsConstructor 먼저 설명하자면 Spring과 Lombok을 사용한다면 꼭 알고 있어야 하는 생성자 관련 어노테이션들이다. 일단 3형제 뒤에 붙은 Constructor라는 단어로부터 유추할 수 있듯..
[Spring] @NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor 이것들이 뭔데평소에 자주쓰는 어노테이션, 헷갈리는 개념들 여기서 정리하고 넘어간다. ⛅️ Intro개발을 진행하며 @NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor 이 세개의 어노테이션을 종종 사용했다. 비슷한 맥락의 코드에 주로 사용하긴 했지만 가끔 헷갈리는 경우가 발생한다. 이게 뭐지 .. 이게 뭐였지 하며 매번 구글링을 하는 나를 위해 정리하고 넘어간다. @NoArgsConstructor@RequiredArgsConstructor@AllArgsConstructor 먼저 설명하자면 Spring과 Lombok을 사용한다면 꼭 알고 있어야 하는 생성자 관련 어노테이션들이다. 일단 3형제 뒤에 붙은 Constructor라는 단어로부터 유추할 수 있듯..
2024.02.18 -
게시판 서비스, SpringBoot 를 더한! ⛅️ Intro Spring에 대해 공부하고 더 깊은 이해를 경험하고 싶어 토이 프로젝트를 진행하기로 결심하고 직접 구현해봤다. 이러한 과정 속에서 배우고 느낀 것들을 공유하고 기록하고 싶어 글로 작성하기로 했다. 프로젝트의 흐름에 맞게 설명하고 첫 프로젝트이고 이 글을 읽는 Spring 입문자들을 위해 최대한 세세히 설명을 더한다. 📃 기능 설계 회원 - 로그인 - 회원가입 게시판 - 게시글/댓글 CRUD, Spring Security 를 사용하여 조회/수정/삭제에 대한 권한 체크 - Spring Data JPA + Querydsl 을 사용한 다양한 타입에 대한 검색 및 정렬 기능 (제목, 유저의 아이디 해시태그) - 게시글 & 해시태그 리스트 조회, 페이..
[SpringBoot & JPA] 게시판 직접 구현해보기 [1]게시판 서비스, SpringBoot 를 더한! ⛅️ Intro Spring에 대해 공부하고 더 깊은 이해를 경험하고 싶어 토이 프로젝트를 진행하기로 결심하고 직접 구현해봤다. 이러한 과정 속에서 배우고 느낀 것들을 공유하고 기록하고 싶어 글로 작성하기로 했다. 프로젝트의 흐름에 맞게 설명하고 첫 프로젝트이고 이 글을 읽는 Spring 입문자들을 위해 최대한 세세히 설명을 더한다. 📃 기능 설계 회원 - 로그인 - 회원가입 게시판 - 게시글/댓글 CRUD, Spring Security 를 사용하여 조회/수정/삭제에 대한 권한 체크 - Spring Data JPA + Querydsl 을 사용한 다양한 타입에 대한 검색 및 정렬 기능 (제목, 유저의 아이디 해시태그) - 게시글 & 해시태그 리스트 조회, 페이..
2024.02.15 -
자바 ORM 표준 JPA 활용 2 정리 📌 김영한님의 강의, 스프링 부트와 JPA 활용 1에 이어 2를 수강하며 들은 내용을 추가로 정리하려고 한다! 실제로 코드를 작성한 내용들은 활용 1 코드에 이어 작성하였고, 누군가 이 글을 볼 때 선행으로 보면 좋을 것 같아 첨부한다. https://seung-seok.tistory.com/entry/%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B6%80%ED%8A%B8%EC%99%80-JPA-%ED%99%9C%EC%9A%A9-1-%EC%A0%95%EB%A6%AC [스프링 부트와 JPA 활용 1] 정리 [스프링 부트와 JPA 활용 1] 정리 📌 김영한님의 강의, 스프링 부트와 JPA 활용 1을 수강하며 들은 내용을 정리하려고 한다. 코드 위주의 설명이..
[스프링 부트와 JPA 활용 2] 정리자바 ORM 표준 JPA 활용 2 정리 📌 김영한님의 강의, 스프링 부트와 JPA 활용 1에 이어 2를 수강하며 들은 내용을 추가로 정리하려고 한다! 실제로 코드를 작성한 내용들은 활용 1 코드에 이어 작성하였고, 누군가 이 글을 볼 때 선행으로 보면 좋을 것 같아 첨부한다. https://seung-seok.tistory.com/entry/%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B6%80%ED%8A%B8%EC%99%80-JPA-%ED%99%9C%EC%9A%A9-1-%EC%A0%95%EB%A6%AC [스프링 부트와 JPA 활용 1] 정리 [스프링 부트와 JPA 활용 1] 정리 📌 김영한님의 강의, 스프링 부트와 JPA 활용 1을 수강하며 들은 내용을 정리하려고 한다. 코드 위주의 설명이..
2024.01.12 -
자바 ORM 표준 JPA 기본편 정리 2📌 프록시란?JPA를 사용할 때의 많은 장점 중 하나로, 그래프를 통해 연관관계를 탐색할 수 있다는 것을 꼽을 수 있다. 하지만 엔티티들은 데이터베이스에 저장되어 있기 대문에 한 객체 조회 시 연관되어 있는 엔티티들을 모두 조회하는 것 보다는 필요한 연관관계만 조회해 오는 것이 효과적이다. 이런 상황을 위해 JPA 는 지연 로딩이라는 방식을 지원하는데 그 중에서도 우리가 일반적으로 가장 많이 사용하는 JPA 구현체인 하이버네이트 (Hibernate) 는 프록시 객체를 통해 지연 로딩을 구현하고 있다. 프록시는 '대신하다'라는 의미를 가지고 있다. 동작을 대신해주는 가짜 객체의 개념이라고 생각하면 편하다. 즉, 프록시 클래스는 실제 클래스를 상속 받아서 만들어지며 ..
자바 ORM 표준 JPA 기본편 정리 [2]자바 ORM 표준 JPA 기본편 정리 2📌 프록시란?JPA를 사용할 때의 많은 장점 중 하나로, 그래프를 통해 연관관계를 탐색할 수 있다는 것을 꼽을 수 있다. 하지만 엔티티들은 데이터베이스에 저장되어 있기 대문에 한 객체 조회 시 연관되어 있는 엔티티들을 모두 조회하는 것 보다는 필요한 연관관계만 조회해 오는 것이 효과적이다. 이런 상황을 위해 JPA 는 지연 로딩이라는 방식을 지원하는데 그 중에서도 우리가 일반적으로 가장 많이 사용하는 JPA 구현체인 하이버네이트 (Hibernate) 는 프록시 객체를 통해 지연 로딩을 구현하고 있다. 프록시는 '대신하다'라는 의미를 가지고 있다. 동작을 대신해주는 가짜 객체의 개념이라고 생각하면 편하다. 즉, 프록시 클래스는 실제 클래스를 상속 받아서 만들어지며 ..
2023.12.04 -
자바 ORM 표준 JPA 기본편 정리 1📌 JPA란? JPA(Java Persistent API)는 자바 진영의 ORM 기술 표준이다. ORM(Object Relational Mapping)이란 객체는 객체대로, 관계형 DB는 관계형 DB대로 설계하고 중간에서 ORM 프레임워크가 매핑을 수행하는 것을 의미한다. JPA는 Application과 JDBC(Java Database Connectivity) 사이에서 동작한다. 💡 ORM 이란 ? - Object-relational mapping, 객체 관계 매핑- 객체는 객체대로 설계 ,관계형 데이터베이스는 관계형 데이터베이스대로 설계 - 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 의미한다. ORM 프레임워크가 중간에서 매핑- 대..
자바 ORM 표준 JPA 기본편 정리 [1]자바 ORM 표준 JPA 기본편 정리 1📌 JPA란? JPA(Java Persistent API)는 자바 진영의 ORM 기술 표준이다. ORM(Object Relational Mapping)이란 객체는 객체대로, 관계형 DB는 관계형 DB대로 설계하고 중간에서 ORM 프레임워크가 매핑을 수행하는 것을 의미한다. JPA는 Application과 JDBC(Java Database Connectivity) 사이에서 동작한다. 💡 ORM 이란 ? - Object-relational mapping, 객체 관계 매핑- 객체는 객체대로 설계 ,관계형 데이터베이스는 관계형 데이터베이스대로 설계 - 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 의미한다. ORM 프레임워크가 중간에서 매핑- 대..
2023.11.23 -
[스프링 부트와 JPA 활용 1] 정리📌김영한님의 강의, 스프링 부트와 JPA 활용 1을 수강하며 들은 내용을 정리하려고 한다. 코드 위주의 설명이나 중요한 개념에 대해서는 설명을 하고 넘어가겠다. 프로젝트 환경 설정과 데이터 베이스 설정 등의 개인적인 설정은 넘어가겠다. 스펙 : Java 11, Intellij IDEA, H2, thymeleaf .. 📚 JPA와 DB 설정, 동작 확인이 부분을 설명하고 넘어가는 것은 실제로 필자가 강의와 똑같이 설정했으나 많은 에러가 발생하여 삽질한 경험이 있어 간략하게 설명을 한다.결과적으로는 강의에서 설명하는 것처럼 띄어쓰기에 주의해야 한다! 띄어쓰기에 유의하여 같은 실수를 반복하지 않길!* yml 과 properties는 의미는 동일하고 작성 형식의 차이가..
[스프링 부트와 JPA 활용 1] 정리[스프링 부트와 JPA 활용 1] 정리📌김영한님의 강의, 스프링 부트와 JPA 활용 1을 수강하며 들은 내용을 정리하려고 한다. 코드 위주의 설명이나 중요한 개념에 대해서는 설명을 하고 넘어가겠다. 프로젝트 환경 설정과 데이터 베이스 설정 등의 개인적인 설정은 넘어가겠다. 스펙 : Java 11, Intellij IDEA, H2, thymeleaf .. 📚 JPA와 DB 설정, 동작 확인이 부분을 설명하고 넘어가는 것은 실제로 필자가 강의와 똑같이 설정했으나 많은 에러가 발생하여 삽질한 경험이 있어 간략하게 설명을 한다.결과적으로는 강의에서 설명하는 것처럼 띄어쓰기에 주의해야 한다! 띄어쓰기에 유의하여 같은 실수를 반복하지 않길!* yml 과 properties는 의미는 동일하고 작성 형식의 차이가..
2023.11.13 -
싱글톤 패턴이란 ? 📌 스프링을 공부하면서 스프링이 없는 순수한 자바 코드에서는 DI 컨테이너를 호출될 때마다 객체를 새로 생성한며, 스프링에서는 이에 싱글톤 패턴을 적용하여 싱글톤 컨테이너를 형성한다는 사실을 알게되었다. 싱글톤 패턴에 대해 정확한 이해를 하기 위해 이 글을 작성한다. 📚 싱글톤 패턴 싱글톤(Singleton) 패턴의 정의는 단순하다. 객체의 인스턴스가 오직 1개만 생성되고 그것을 보장하는 패턴을 의미한다. 그래서 객체를 2개 이상 만들지 못하게 설계를 해야 하는데 이는 코드로 설명하겠다. public class Singleton { // 1. static 영역에 객체를 딱 1개만 생성 private static Singleton instance = new Singleton(); // ..
싱글톤 패턴이란싱글톤 패턴이란 ? 📌 스프링을 공부하면서 스프링이 없는 순수한 자바 코드에서는 DI 컨테이너를 호출될 때마다 객체를 새로 생성한며, 스프링에서는 이에 싱글톤 패턴을 적용하여 싱글톤 컨테이너를 형성한다는 사실을 알게되었다. 싱글톤 패턴에 대해 정확한 이해를 하기 위해 이 글을 작성한다. 📚 싱글톤 패턴 싱글톤(Singleton) 패턴의 정의는 단순하다. 객체의 인스턴스가 오직 1개만 생성되고 그것을 보장하는 패턴을 의미한다. 그래서 객체를 2개 이상 만들지 못하게 설계를 해야 하는데 이는 코드로 설명하겠다. public class Singleton { // 1. static 영역에 객체를 딱 1개만 생성 private static Singleton instance = new Singleton(); // ..
2023.10.25 -
🟢 객체 지향 프로그래밍이란 ?객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체" 들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메세지를 주고받고, 데이터를 처리할 수 있다. (협력)객체지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어의 개발에 많이 사용된다.프로그램을 설계할 때, 자바 언어의 다형성을 활용하여 역할과 구현을 명확히 분리해야 한다. 역할 = 인터페이스구현 = 인터페이스를 구현한 클래스, 구현 객체 객체 설계시 역할(인터페이스)를 먼저 부여하고, 그 역할을 수행하는 구현 객체를 만든다. 다형성의 본질이란인터페이스를 구현한 객체 인스턴스를 실행 시점에 유연하게 변경할 수 있다. 다형..
[JAVA] 스프링과 객체지향🟢 객체 지향 프로그래밍이란 ?객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체" 들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메세지를 주고받고, 데이터를 처리할 수 있다. (협력)객체지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어의 개발에 많이 사용된다.프로그램을 설계할 때, 자바 언어의 다형성을 활용하여 역할과 구현을 명확히 분리해야 한다. 역할 = 인터페이스구현 = 인터페이스를 구현한 클래스, 구현 객체 객체 설계시 역할(인터페이스)를 먼저 부여하고, 그 역할을 수행하는 구현 객체를 만든다. 다형성의 본질이란인터페이스를 구현한 객체 인스턴스를 실행 시점에 유연하게 변경할 수 있다. 다형..
2023.10.15