전체 글

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

[Springboot] spring security 기본 설정, SecurityConfig 설정, 회원가입 구현 - authorizeHttpRequests(), anyRequest() 설정 값 이해하기

Spring Security란 무엇인가? : 스프링 프레임워크 기반의 보안(인증과 권한 부여)을 다루기 위한 보안 프레임워크입니다. 스프링 시큐리티는 웹 애플리케이션, Restful 서비스, 메서드 수준의 보안까지 다양한 보안 요구사항을 지원하며, 많은 기능과 확장성을 제공하여 안전하고 효과적인 애플리케이션 보안을 구현하는 데 사용합니다. Spring Security의 주요 기능과 개념 1. 인증(Authentication) : 사용자의 신원을 확인하는 과정으로, 스프링 시큐리티는 다양한 인증 방식을 지원합니다. 기본적으로 form 기반의 로그인, HTTP 기본 인증, Remember Me 인증, OAuth, LDAP 등 다양한 인증 프로토콜을 지원합니다. 2. 권한 부여(Authorization) : ..

Spring Framework/Spring boot

[JSON] JSON이란 빠른 데이터 교환 형식, Springboot Jackson 라이브러리를 이용해 JSON - Object 변환하기

JSON이란 무엇인가? : JSON은 JavaScript Object Notation 철자로, 데이터 교환 형식을 의미합니다. 사람이 읽고 쓰기에 용이하며, 기계가 파싱하고 생성하기도 간단한 형식입니다. 주로 웹 애플리케이션에서 데이터를 교환하고 전송하는 데 사용됩니다. JSON은 자바스크립트의 객체 표기법을 기반으로 하며, 다양한 프로그래밍 언어에서 지원됩니다. JSON을 통해 우리는 서로 다른 프로그래밍 언어로 개발하고 있어도 빠르고 간편하게 데이터를 주고받을 수 있습니다. JSON의 특징: 1. 간결하고 가독성이 좋음: JSON은 텍스트 기반 형식이므로 사람이 읽고 쓰기가 쉽습니다. 중첩된 데이터 구조를 사용하여 복잡한 데이터를 표현할 수 있으며, 인덴팅을 사용하여 계층 구조를 시각적으로 파악할 수..

Spring Framework/JPA

[JPA/Springboot] JPA Entity의 현재 시간(@CreationTimeStamp), 업데이트 시간(@UpdateTimeStamp) 적용하기 및 @MappedSuperClass를 이용해 코드 중복 줄이기

Springboot와 JPA를 이용해 개발을 할 때, 보통 엔티티를 만들고 이를 데이터베이스와 매핑하여 테이블을 생성합니다. 테이블의 컬럼(Column)에서 데이터가 생성된 시간 또는 업데이트된 시간을 표시해야 할 경우가 있습니다. 현재 시간과 업데이트 시간을 표기할 방법은 여러 가지 방법이 있지만, 저는 JPA의 어노테이션 중 @CreationTimeStamp와 @UpdateTimeStamp를 이용한 방법에 대해 설명하겠습니다. 그전에 알아야 할 것이 있습니다. 여러 엔티티에서 각각 현재 시간과 업데이트 시간을 표시할 속성이 필요하다고 한다면 우리는 중복되는 같은 코드를 여러 엔티티 코드에 다 작성해야 합니다. 중복되는 코드를 줄이기 위해서, 우리는 @MappedSuperClass 어노테이션을 이용해 ..

Git

[Git] git push를 하려 할 때 '[rejected] main -> main (fetch first) error: failed to push some refs to' 에러 해결 방법

원인 : '[rejected] main -> main (fetch first) error: failed to push some refs to' 'git push origin main' 명령을 실행할 때 발생하는 위와 같은 에러는 원격 저장소(Github)와 로컬 저장소 사이의 충돌이나 변경 사항을 동기화하지 않아서 발생하는 에러입니다. 이러한 충돌은 일반적으로 원격 저장소에 업데이트된 변경 사항이 로컬 저장소에 반영되지 않은 경우 발생합니다. 해결 방법 0) 변경 사항 가져오기 (Fetch) : 'git fetch' 명령을 사용하여 원격 저장소의 최신 변경 사항을 로컬 저장소로 가져옵니다. 이를 통해 로컬 저장소와 원격 저장소 사이의 차이점을 확인할 수 있다. // 로컬 저장소와 원격 저장소의 차이점 확..

Spring Framework/Spring boot

[Gradle] 빌드 도구 Gradle이란, Gradle 자동화 방식 파악하기

Gradle이란 무엇인가? : Gradle은 Maven과 Ant의 장점을 결합한 형태로 개발된 현대적인 빌드 자동화 도구입니다. Java, Kotlin, Groovy 등 다양한 프로그래밍 언어를 지원해 줍니다. 저는 SpringBoot 프로젝트를 생성할 때 Gradle을 통해 프로젝트 및 의존성을 설정을 하는데 이용해 봤습니다. 빌드 자동화(CI)란? : CI는 개발자들이 코드 변경 사항을 빈번하게 통합하고 테스트하는 방식으로 작업을 진행하는 소프트웨어 개발 방법론입니다. 이를 통해 개발자들은 작은 코드 변경 사항들을 자주 반영하고, 통합 오류를 최소화하여 더욱 안정적인 소프트웨어를 공할 수 있습니다. Gradle을 사용하는 주목적은 프로젝트의 의존성 관리, 빌드 설정, 테스트, 배포 등을 효율적으로 처..

Spring Framework/Spring boot

[Spring boot] 스프링 부트에서 @ModelAttribute와 @RequestBody 애노테이션의 사용법과 차이점 - 컨트롤러에 데이터 전달하기 -

스프링 부트는 웹 애플리케이션 개발 시 많은 편의성을 제공하는 프레임워크입니다. 그중에서도 @ModelAttribute와 @RequestBody 애노테이션은 데이터를 컨트롤러로 전달하는 데에 사용되는 중요한 애노테이션입니다. 이번 블로그에서는 @ModelAttribute와 @RequestBody 애노테이션의 개념, 사용법, 그리고 둘 사이의 차이점에 대해 알아보겠습니다. @ModelAttribute @ModelAttribute 애노테이션은 사용자가 입력한 데이터를 자바 객체로 바인딩하기 위해 사용됩니다. 주로 HTML 파일의 form태그에서 전송된 데이터를 처리할 때 사용되며, HTTP 요청의 바디(body)가 아닌 URL 쿼리 파라미터로 전달되는 데이터를 처리할 때 유용합니다. @Getter@Sette..

Spring Framework/Spring boot

[Spring boot] 스프링 부트 @PathVariable, @RequestParam 사용법 - 컨트롤러에서 파라미터 받는법

스프링 부트는 웹 애플리케이션을 개발할 때 많은 편의성을 제공해 주는 프레임워크인데, 이 중에서도 @PathVariable과 @RequestParam 애노테이션은 URL 경로나 요청 파라미터를 처리할 때 사용되는 애노테이션입니다. 이번 블로그에서는 @PathVariable과 @RequestParam 애노테이션의 개념, 사용법, 그리고 둘 사이의 차이점에 대해 알아보겠습니다. @PathVariable @PathVariable 애노테이션은 URL 경로에서 변수 값을 추출하여 메서드의 파라미터로 바인딩하는 역할을 합니다. 즉, URL 경로의 일부를 변수로 사용하고자 할 때 주로 사용됩니다. 이 애노테이션은 중괄호{}로 감싼 경로 변수와 메소드 파라미터를 매핑하여 값을 전달합니다. @GetMapping("/me..

Spring Framework/JPA

[JPA] JPA 연관관계 매핑 및 지연로딩 (다대일, 일대다, 다대다)

1) JPA 연관관계 매핑 시 고려사항 3가지 ✔ 다중성 ✔ 단방향, 양방향 ✔ 연관관계의 주인 ▼ 다중성 - 애노테이션 정리 - 다대일 : @ManyToOne - 일대다 : @OneToMany - 일대일 : @OneToOne - 다대다 : @ManyToMany 주로 다대일, 일대다, 일대일 관계로 표현하며, 다대다 관계를 가지는 경우 1:N - M:1 관계인 일대다 - 다대일 관계로 풀어서 표현합니다. ▼ 단방향, 양방향 [테이블] : 데이터베이스 - 외래 키 하나로 양쪽 조인이 가능합니다. [객체] : 자바 - 참조용 필드가 있는 쪽에서만 참조가 가능합니다. (한쪽만 참조하면 단방향, 양 쪽이 서로 참조하면 양방향) ▼ 연관관계의 주인 - 테이블은 외래 키 하나로 두 테이블이 연관관계를 맺습니다. -..

kylo
오늘도 열심히 - BE