본문 바로가기

Spring19

[TIL]20230627 - 진행한 블로그 프로젝트 code review throw new IllegalArgumentException("비밀번호가 틀립니다."); 오늘은 어제 제출한 팀원끼리 페어가 짝지어져서 처음 만나 각자의 코드에 대해 코드 리뷰를 진행하였다. 페어가 나에게 남긴 코드리뷰는 다음과 같았다. 그래서 리뷰에 따라 코드를 수정해보기로 하였다. 1. 불필요한 어노테이션인 Setter를 삭제하여 Post엔티티의 Setter를 이용한 접근을 막았다. 2. PostService에서 만약 비밀번호가 틀리면 throw new IllegalArgumentException("비밀번호가 틀립니다."); 을 통해 예외를 던지므로 컨트롤러에서 예외가 반환되더라도 try catch를 통해 예외처리를 해주었다. 2023. 6. 27.
[TIL]20230626 - 간단한 과제를 만들며 JPA Auditing기능 사용 오늘은 2주차 강의를 모두 시청 한 뒤 레벨1 과제를 진행하였다. 과제는 간단한 게시글 작성, 조회, 수정, 삭제의 CRUD기능 구현이었다. 이전에 스프링으로 진행했던 CRUD구현이기도 하고 강의에서도 했던 기능들이라 큰 어려움 없이 모든 기능을 구현할 수 있었다. 그래서 이전에 진행했던 프로젝트와 어떻게 다르게 진행했는지 회고해보기로 했다. 우선 기존의 CreatedAt과 ModifiedAt을 Entity에 저장할때에는 Service에서 직접 Date객체를 사용하여 현재시간을 Entity에 set하였지만 이번 과제에서는 JPA Auditing을 적용하였다. JPA Auditing이란 JPA가 특정한 이벤트에 반응하여 등록일, 수정일, 등록자 등과 같은 데이터를 입력해준다. 특히 생성시간, 수정시간은 포.. 2023. 6. 27.
[Spring] JDBC JDBC의 등장배경 애플리케이션 서버에서 DB에 접근하기 위해선 여러 작업이 필요하다 우선 DB에 연결하기 위해 커넥션을 연결해야하고 SQL을 작성한 후 커넥션을 통해 SQL을 요청한다. 그 다음 요청한 SQL에 대한 결과를 응답 받는다. 하지만 우리가 쓰던 MySQL서버에서 PostgreSQL서버로 변경한다면 각 서버마다 연결 방법, SQL요청하는 방법, 결과를 응답받는 방법 모두 다를 수 있기 때문에 애플리케이션 서버에서 바뀌는 DB서버에 따라 모든 로직을 수정해야한다. 이러한 문제를 해결하기 위해 JDBC 표준 인터페이스가 등장했다. JDBC는 DB에 접근할 수 있도록 Java에서 제공하는 API이다. JDBC에 연결해야하는 DB의 JDBC 드라이버를 제공하면 DB 연결 로직을 변경할 필요없이 DB.. 2023. 6. 26.
[Spring] HTTP 데이터를 객체로 처리하는 방법 Model Attribute와 Request Body [Spring] Path Variable과 Request Param 클라이언트에서 서버로 HTTP요청을 보낼 때 데이터를 함께 보낼 수 있는데 여러 방식이 있어 방식마다 다른 처리를 해주어야한다. - Path Variable 방식 http://localhost:8080/hello/request/star/Robbie/age/95 서버 tjsdn9803.tistory.com 이전 포스트에서는 HTTP 요청에 추가된 데이터를 변수로 처리했었다. 하지만 변수를 따로따로 처리하지 않고 하나의 객체로 묶어 처리할 수도 있다. @ModelAttribute POST http://localhost:8080/hello/request/form/model HTML의 form태그를 사용하여 POST 방식으로 HTTP요청을 보낸.. 2023. 6. 26.
[Spring] HTTP 데이터를 변수로 처리하는 방법 Path Variable과 Request Param 클라이언트에서 서버로 HTTP요청을 보낼 때 데이터를 함께 보낼 수 있는데 처리하는 여러 방식이 있어 각 방식마다 다른 처리를 해주어야한다. - @PathVariable http://localhost:8080/hello/request/star/Robbie/age/95 서버에 보내려는 데이터를 URL경로에 다음과 같이 추가하는 방식이다. // [Request sample] // GET http://localhost:8080/hello/request/star/Robbie/age/95 @GetMapping("/star/{name}/age/{age}") @ResponseBody public String helloRequestPath(@PathVariable String name, @PathVariable int.. 2023. 6. 26.
좋은 객체 지향 설계란? SOLID 객체지향의 특징 추상화 캡슐화 상속 다형성 자바 강의를 한번이라도 들어봤으면 무조건 보거나 들었을 객체지향이다. 객체 지향 프로그래밍은 프로그램을 단순히 작성한 코드들의 목록으로 보는것이 아닌 객체 간 관계를 통해 파악하고자 하는 것이다. 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다. 여기서 유연과 변경이 용이하다는 것은 마치 키보드, 마우스 갈아 끼우듯이, 컴퓨터 부품 갈아 끼우듯이 컴포넌트를 쉽고 유연하게 변경하면서 개발할 수 있는 방법이다. 이러한 유연함을 제공하여 변경에 용이하게 해주는 객체 지향의 특징은 다형성이다. 다형성은 역할과 구현으로 설명할 수 있다. 실세계를 예로 들면 자동차는 역할이고 K3, 아반떼, 테슬라 모델3는 .. 2023. 6. 18.