[Spring Security] 기초 사용하기
BackEnd/Spring 2023. 11. 27. 04:52

implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity' Spring Security를 사용하기 위해서는 라이브러리를 등록해야 한다. 스프링 시큐리티가 내가 공부하면서 제일 궁금했던 부분이다. 서버의 경우는 어떻게 보안 절차를 해야 하는가?에 대해 나는 제일 궁금했었다. 게임 Bass ( Backend as a Service) 서비스형 백엔드 플랫폼인 Playfab을 사용하면서 보안의 경우는 대부분 function으로 작성했는데 Spring의 경우는 Spring Security를 사용한다. 스프링 시큐리티는 기본..

Repository
BackEnd/Spring 2023. 11. 22. 11:21

리포지터리는 엔티티에 의해 생성된 DB 테이블에 접근하는 메서드들을 사용하기 위한 인터페이스 데이터 처리를 위해서는 테이블에 어떤 값을 넣거나 값을 조회하는 등의 CRUD(CREATE, READ, UPDATE, DELETE)가 필요하다. 이 때 이러한 CRUD를 어떻게 처리할지 정의하는 계층이 바로 리포지터리이다. 내가 리포지터리와 테스트코드를 작성하면서 놀란 점은 바로 테스트 코드를 작성할 때 JpaRepository를 상속한 ~ 객체가 생성될 때 findBy + 엔티티 속성명 (findBySubject)과 같은 리포지터리 메서드를 작성하면 해당 속성의 값으로 데이터를 조회할 수 있는 게 놀라웠다.. 아니 이렇게 굉장한 기능이 있다니.. 스프링 놀랍다.. 아니 C#에서는 이러한 메서드들을 직접 구현을 ..

Entity
BackEnd/Spring 2023. 11. 22. 01:56

Entity는 데이터베이스 테이블과 매핑되는 자바 객체를 의미합니다. 주로 JPA와 함께 사용되며, 데이터베이스와 애플리케이션 사이의 데이터를 효과적으로 조작하고 관리하기 위한 객체 지향적인 프로그래밍 방식을 제공합니다. 되도록이면 엔티티는 Setter 메서드를 구현하지 않고 사용. 엔티티는 db와 바로 연결되어 있으므로 안전상의 문제가 발생 가능성이 높다. 엔티티를 생성할 경우에는 롬복의 @Builder 어노테이션을 통한 빌드패턴을 사 @Id 애너테이션 - SQL에서 Primary Key와 같은 특징을 가집니다. 고유 번호를 기본 키로 함으로써 동일한 값으로 저장할 수 없게합니다. @GeneratedValue - GenerationType.IDENTITY는 SQL에서 Auto_Increment와 같은 ..

스프링 부트 Validation
BackEnd/Spring 2023. 11. 17. 02:53

Lombok @Data 어노테이션은 @Getter/ @Setter/ @ToString/ @EqualsAndHashCode/ @RequiredArgsConstructor를 합친 것 Spring Boot @Validated어노테이션 이 클래스를 구성하는 메서드 중에서 1개라고 notblank notnull... 을 사용하면 지우면 안 된다. @Valid `주로 메서드의 매개변수에 사용되며, 주로 스프링 MVC에서 컨트롤러의 메서드에 적용된다.` @Validated `주로 메드나 클래스에 사용되며, 스프링 MVC 외의 다른 레이어에서도 사용할 수 있다.` @NotBlank 해당 어노테이션이 붙은 요소가 null이 아니고 공백 문자를 제외한 적어도 하나의 문자를 포함하고 있음을 검증한다. @NotNull 말 그..

스프링 부트 Controller (1)
BackEnd/Spring 2023. 11. 14. 20:53

나는 Java를 배우기 전에는 Java가 그냥 그런 언어라고 생각했다. 하지만 자바의 기초를 습득하고 스프링을 접할 때 정말 아름다운 언어잖아!라고 다시 생각했다.. 스프링 부트의 Controller에 대해 잠시 써보고자 한다. 먼저 Spring Boot는 Java 기반의 웹 애플리케이션을 쉽게 개발할 수 있도록 도와주는 프레임워크다. 그중 @Controller 어노테이션은 Spring에서 해당 클래스가 웹 요청을 처리하는 컨트롤러 클래스임을 나타낸다. @Controller public class ArticleController { } 저렇게 어노테이션을 붙여주기만 하더라도 스프링 부트에서 이게 컨트롤러구나 인식한다는 뜻이다..! 아니.. 자바는 C#이랑 비슷한 객체지향 언어가 아니였나..? 저런 식으로..

관계형 데이터 모델링
BackEnd/DB 2023. 11. 2. 02:14

마지막 수정일( 2023 // 11 // 02 ) 데이터 모델링의 전체 흐름 업무파악 개념적 데이터 모델링 논리적 데이터 모델링 물리적 데이터 모델링 업무파악 무엇을 하려고 하는지? 의뢰한 사람이 무엇을 꿈꾸고 있는지 파악하기 기획서를 산출물로 받아낼 수 있다. 나는 DB를 통해서 현실의 문제를 해결하는 사람이다. 그렇기 때문에 이해하는 것만으로는 부족하다. 해결하려는 문제를 컴퓨터라는 강력하고 안 똑똑한 기계에 설명할 수 있을 정도로 업무를 이해해야 한다. 그렇기 위해서는 그 분야의 실무자들과 정확하게 소통하는 것이 중요하다. 이해를 했다면 설명을 잘 해야 한다. 업무 파악을 할 때 많이 사용하는 방법은 UI를 같이 그려보는 방법이다. 일을 의뢰하는 사람과 함께 그려보는 과정에서 원하는 것을 일치시키는..

[Mysql] SQLyog 관계형 DB
BackEnd/DB 2023. 10. 31. 23:41

mysql의 관계형 DB 및 SQL 문법에 대해 공부하고 배운 것들을 작성하고자 한다. 조회 SHOW DATABASES; - MySQL에서 모든 DB 목록 표시 SHOW TABLES; - DB내 모든 테이블 반환 DESC tablename; - 테이블(구조) 표시 SELECT * FROM tablename; - 해당 테이블의 모든 행과 열을 검색한다. SELECT 컬럼명 FROM tablename WHERE 조건 AND 조건 ORDER BY id DESC LIMIT 3; SELECT에서 여러가지로 필터를 걸어서 조회를 할 수 있다. 생성 CREATE DATABASE databasename; - db 생성 USE databasename; - db 선택 CREATE TABLE tablename ( 컬럼명 데..

[Lombok]
Study 2023. 10. 27. 15:03

롬복을 처음 이용했는데 매우 좋은 라이브러리였다. Getter와 Setter을 Lombok을 이용해 @Getter @Setter를 변수에 작성하기만 하면 Getter와 Setter을 쓴것과 같은 효과를 준다! Dependencies implementation 'org.projectlombok:lombok:1.18.30' annotationProcessor 'org.projectlombok:lombok:1.18.30' testImplementation 'org.projectlombok:lombok:1.18.30' testAnnotationProcessor 'org.projectlombok:lombok:1.18.30' class Lombok { private String name; public String ..