전체 글

모르는 내용 및 아는 내용 모두 꼼꼼히 복습하여 익숙해지는 그 날까지 꾸준히 공부하겠습니다.
Spring Framework/JPA

[JPA] Spring-JPA 엔티티 값 Update 하기 - save(), 더티체킹(Dirty Checking - set())

JPA를 이용해 update를 구현하는 방법에 대해 설명하고자 합니다. (1) Spring JPA DATA를 이용해 save() 함수에 엔티티의 id값이 담겨있고 엔티티의 변경된 값이 있으면 save() 함수를 통해 업데이트를 할 수 있습니다. 하지만 save() 함수를 통해 모든 값을 변경하지 않고 업데이트하는 경우 변경한 값을 제외한 값들은 null 처리가 되어 업데이트되는 오류가 생길 수 있습니다. (2) 모든 값을 변경하지 않는 경우 변경 감지(더티 체킹)을 통해 업데이트를 할 수 있습니다. 1. save() 를 통해 기존의 엔티티 값 수정하기 엔티티의 모든 속성값을 변경해 주어야 오류가 생기지 않습니다. // 기존 엔티티 조회 후 수정 EntityA existingEntity = reposito..

Spring Framework/Spring boot

Spring JPA로 페이징 처리하기 - @PageableDefault와 Pageable 활용

1. @PageableDefault() 사용하여 페이징 처리하기여러 개의 리스트를 한 번에 보여주지 않고, 정해진 개수로 페이징 처리할 때 @PageableDefault() 어노테이션을 사용하면 쉽게 처리할 수 있습니다. Service 클래스@Transactional(readOnly = true) public Page BoardList(Pageable pageable) { return postsRepository.findAll(pageable);}우리는 JpaRepository를 상속받은 Repository의 findAll 함수를 사용하여 파라미터로 Pageable 객체를 넣어주면 간단하게 페이징 기능을 구현할 수 있습니다.Page 를 타입으로 지정하면, 반드시 파라미터로 Pageabl..

Spring Framework/Spring boot

[Springboot] 스프링 시큐리티 @AuthenticationPrincipal로 로그인 정보 전달하기, sec:authorize 사용하기

1. @AuthenticationPrincipal 어노테이션이란 무엇인가? 스프링 시큐리티를 사용하여 사용자 인증을 처리하고 있는 경우, @AuthenticationPrincipal 어노테이션을 통해 현재 인증된(로그인된) 사용자의 정보를 편리하게 가져와 사용할 수 있습니다. @AuthenticationPrincipal은 스프링 프레임워크에서 사용되는 어노테이션 중 하나로, 사용자 인증 정보를 주입받기 위해 사용합니다. 주로 웹 애플리케이션에서 인증된(로그인한) 사용자의 정보를 Controller이나 Service 클래스에서 접근하고 활용하는 데 사용됩니다. @AuthenticationPrincipal을 통해 매번 인증된 사용자의 정보를 DB에 접근해서 데이터를 가져오는 것을 막을 수 있습니다. 한 번 ..

Python/Python

[Python] 파이썬 문자열 변환하기 (replace), 문자 인덱스 찾기 (index, find) - python 문자열 처리 함수

파이썬 문자열에서 원하는 문자로 변환하기 (replace) 파이썬에서 replace 함수를 통해 문자열 내에서 특정 부분 문자열을 다른 문자열로 대체할 수 있습니다. 이 함수는 원본 문자열을 변경하지 않고 새 문자열을 반환하므로 replace 사용 후 반환받는 변수 명을 작성해주어야 합니다. original_string = "Hello, world!" print("original_string : " + original_string) new_string = original_string.replace("world", "Python") print("new_string : " + new_string) new_string = original_string.replace(old, new, count) “origina..

Python/Python

[Python] 파이썬 딕셔너리(dictionary) key-value 값을 기준으로 정렬하기 - lambda 함수 응용

파이썬에서 lambda 함수를 사용하여 딕셔너리를 정렬할 수 있습니다. 딕셔너리의 key나 value 값으로 정렬할 수 있으며 또한 2가지의 정렬 조건을 적용할 수 있습니다. key 기준으로 정렬, value 기준으로 정렬, 2가지 조건 적용하는 순으로 작성하였습니다. 예제 1) Key 값을 기준으로 정렬 - 정렬된 Key 리스트 반환 my_dict = {1:5, 2:6, 3:4} print(sorted(my_dict)) # 오름차순 정렬 print(sorted(my_dict, reverse=True)) # 내림차순 정렬 예제 2) Key 값을 기준으로 정렬 - 정렬된 딕셔너리 반환 # key 값을 기준으로 정렬된 (key,value) 쌍으로 리스트 반환 print(sorted(my_dict.items(..

Python/Python

[Python] 파이썬 lambda 람다 함수 사용법 및 설명

Lamda 함수란 lambda 함수는 익명 함수로써 간단한 연산을 수행하거나, 다른 함수에 인자로 전달할 때 유용합니다. 예제 1) 기본 lambda # 두 숫자를 더하는 Lambda 함수 add = lambda x, y: x + y result = add(3, 5) print(result) # 출력: 8 iterable 란 자신의 멤버를 한 번에 하나씩 리턴할 수 있는 객체입니다. list, str, tuple, dict 등이 여기에 속합니다. iterator 란 값을 차례대로 꺼낼 수 있는 객체를 의미합니다. sequence는 int 타입 인덱스를 통해, 원소에 접근할 수 있는 iterable 입니다. 예제 2) map 함수 적용 map 함수는 주어진 함수를 Sequence의 모든 요소에 적용하여 새..

Git

[Git] Git branch 사용법 및 브랜치 관리하기 - git branch, git checkout

Git은 버전 관리 시스템으로, 프로젝트의 코드를 관리하고 변경 사항을 추적하며 협업하는 데 사용됩니다. git branch 명령어는 코드를 서로 다른 브랜치로 나누어 관리할 수 있게 해주는 기능을 제공합니다. 각 브랜치는 독립적으로 변경된 코드를 포함하며, 새로운 기능 개발, 버그 수정, 실험 등을 위해 사용할 수 있습니다. branch를 사용하는 이유 1) 다른 개발자와 동시 작업을 하기 위해 => 팀원이 3명이 있을 경우, 세 명이 각각 branch를 만든 후, 자신의 branch에 각 개인이 맡은 부분의 개발을 진행합니다. 이후에, merge를 통해 자신이 개발한 부분의 코드를 main에 합치거나, branch끼리 merge를 통해 코드를 합쳐 프로젝트를 관리합니다. 2) 프로젝트 관리를 위해 =..

Spring Framework/Spring boot

[스프링부트 API 개발] API 개발 2 - DTO로 데이터 전달하기, 지연 로딩, 컬렉션 최적화

[인프런] 김영한님의 실전 스프링부트와 JPA 활용 2편을 수강하면서 공부한 내용을 바탕으로 작성하였습니다. API 개발 중 요청 값과 응답 값을 DTO로 주고받는 방법과 지연 로딩 최적화에 대해 작성한 글입니다. [스프링부트 API 개발] API 개발 1 - DTO로 데이터 전달하기, 지연 로딩, 컬렉션 최적화 [인프런] 김영한님의 실전 스프링부트와 JPA 활용 2편을 수강하면서 공부한 내용을 바탕으로 작성하였습니다. 스프링부트를 통해 API를 개발할 때 요청(Request)하는 값과 반환(Response) 받는 값을 엔 kylo8.tistory.com [Spring Framework/JPA] - [스프링부트 API 개발] API 개발 1 - DTO로 데이터 전달하기, 지연 로딩, 컬렉션 최적화 컬렉션..

kylo
오늘도 열심히 - BE