전체 글 357

spring - 21일차

미니 프로젝트 시작 프로젝트 기능 중 오늘 우리 팀의 목표는 회원가입, 로그인 창 구현이었다. 그 중에서 내가 맡은 부분은 회원가입 로직 구현 회원 가입 부분을 적용한 뒤 다른 팀원이 스프링 시큐리티를 적용하여 코드를 합친 후 테스트 진행 중 프로그램이 정상 작동 되고, 포스트맨에서 테스트 진행 시 회원가입과 로그인 진행되지 않았고 컨트롤러 자체가 작동하지 않았다. 원인은 시큐리티 부분에서 filter 부분의 문제였던 것! String token = jwtUtil.resolveToken(request); if (token != null){ if (!jwtUtil.validateToken(token)){ } Claims info = jwtUtil.getUserInfoFromToken(token); setA..

spring - 20일차

List findAllByOrderByCreatedAtDesc(); List postList = postRepository.findAllByOrderByCreatedAtDesc(); 함수명 확인할 것 ! Id 값이 들어갈 시에는 어떤 오류가 발생할지 장담을 못함...... @Transactional public PostResponseDto updatePost(Long id, PostRequestDto requestDto) { Post post = postRepository.findById(id).orElseThrow( () -> new IllegalArgumentException("해당 게시물이 없습니다.") ); if(!post.getPassword().equals(requestDto.getPasswo..

spring - 19일차

문제 - 예외처리(상태코드 반환)의 예제 코드를 보고 따라 쳤는데, 안됌.. 똑같은데 실행 안돼.. @ExceptionHandler(IllegalArgumentException.class) public ResponseEntity handleIllegalArgument(IllegalArgumentException e) { log.warn("handleIllegalArgument", e); ErrorCode errorCode = CommonErrorCode.INVALID_PARAMETER; return handleExceptionInternal(errorCode, e.getMessage()); } handelExceptrionInternal(errorCode, e.getMessage()); 이 부분에서 er..

spring - 18일차

정규식 or 정규표현식 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식의 언어 기본 개념 불리언 "또는" - 수직선을 사용해 여러 항목 중 선택을 하기 위해 구분 Ex_) gray|grey => "gray" 또는 "grey"와 일치 한다는 의미 그룹 묶기 괄호를 사용해서 연산자의 범위와 우선권을 정의 양의 지정 ? => 0번 또는 1차례까지의 발생을 의미 * => 0번 이상의 발생을 의미 + => 1번 이상의 발생을 의미 {n} => 정확히 n번 만큼 일치시킨다 {min,} => min 번 이상만큼 일치시긴다 {min, max} => 적어도 min, 최대 max 만큼 일치시킨다 @Pattern(regexp = "(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[@$!%*#?&]).{8,..

spring - 17일차

오늘의 문제점 - 댓글 작성 시 id 값이 댓글 작성 순서에 맞게 생성되는 것이 아닌, 전체 작성 글과 연동되어 생성된다. 즉, 처음 게시글을 작성하면 첫 게시글 1번의 id값이 1번이 되고, 그 사이에 댓글을 작성하면 댓글 1번의 id가 1번이 되야 하는데 id 값이 2번으로 작성되고, 다음 게시글을 작성하면 게시글 2번의 id 값이 3번이 된다.. 뭐가 문제인 것일까.. Notice Entity 변경 전 @Id // JPA에서 기본키를 나타는 필드에 사용 @GeneratedValue(strategy = GenerationType.AUTO) private Long id; Notice Entity 변경 후 @Id // JPA에서 기본키를 나타는 필드에 사용 @GeneratedValue(strategy =..

23.02.13 - 02.19 -WIL

ORM (Object-Relational Mapping) 객체와 관계형 DB의 데이터터를 자동으로 매핑해주는 것 객체 지향 프로그래밍은 클래스(class)를 사용하고, 관계형 DB는 테이블을 사용합니다 객체 모델과 관계형 모델 간에 불일치가 존재 ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결 DB 데이터 Object 필드 객체를 통해 간접적으로 DB 데이터를 다움 Persistant API 라고도 부름 JPA, Hibernate 가 있음 장단점 장점 객체 지향적인 코드로 인해 더 직관적이고, 비지니스 로직에 더 집중 가능 재사용성 및 유지보수의 편리성 증가 DBMS에 대한 종속성 감소 (DBMS - Datebase Management System - 데이터를 한 곳에 ..

spring - 14일차

영속성 컨텍스트 영속성 컨텍스트는 JPA에서 Entity를 관리하기 위한 중요한 메커니즘이다 (JPA는 객체와 관계형 데이터베이스 간의 매핑을 제공하는 ORM 기술의 표준) JPA에서는 Entity 객체를 DB에서 조회할 때마다 새로운 객체를 생성하지 않고, 영속성 컨텍스트에서 먼저 조회 => DB 조회가 필요 없어져 어플리케이션의 성능을 향상시킴 객체의 변경사항을 추적하고, 트랜잭션을 커밋할 때 해당 변경사항을 DB에 반영 => 어플리케이션에서 DB 변경 작업을 쉽게 처리 Entitiy 객체를 여러개 보유하며, 트랜잭션 단위로 관리 => 트랜잭션 롤백 시 영속성 컨텍스트가 관리하는 모든 엔티티 객체의 변경사항도 취소 Entity 객체의 동일성(Identity)를 보장 => 같은 ID 값을 가진 엔티티 ..

spring - 13일차

builder 패턴 - 복잡한 Object들을 단계별로 구축할 수 있는 생성 디자인 패턴 - 동일한 구성코드를 사용하여 다양한 타입과 표현을 제공 - 생성자를 가독성 좋게 만들어주는 패턴이라고 할 수 있음 - 객체를 생성할 수 있는 builder() 함수를 통해 얻고 거기에 셋팅하고자 하는 값을 셋팅하고 마지막에 build()를 통해 빌더를 작동시켜 객체를 생성 @Builder Bag bag = Bag.builder() .name("name") .money(10000) .memo("memo") .build(); 장점 - 필요한 데이터만 설정 가능 - 유연성 확보 (설정 값의 순서가 어떠하든 상관 없다) - 가독성을 높임 - 불변성 확보 옵션 builderMethodName - @Builder 어노테이션을..

728x90