👀 Overview 나는 포민(포장의 민족) 프로젝트에서 사장님 서버에서 가게 도메인과 메뉴 도메인을 맡았다. 포장의 민족 프로젝트에서의 특이점이라고 한다면, 고객팀과 사장팀이 각각 서버를 나누고, 서버를 나눴으니 DB 또한 각각 나눠 진행을 했다. 그랬기 때문에, 해당 사장 서버의 DB와 고객 서버의 DB의 정합성을 맞추는 것이 핵심이였고 항상 사장 서버에서 자원이 생성되거나 변경될 때 마다 고객팀 서버로 정보를 전송해 주어야 했다. 따라서 아래와 같이 InfoSender 빈을 통해서 RestTemplate을 통해 정보를 고객팀 서버로 전달했다. @Component @RequiredArgsConstructor public class InfoSender { private final RestTemplate..
spring boot는 jar 파일 안에 embeded 된 서버와 application 코드가 들어있어서 별도의 서버연결과 설치가 필요하지 않다. (Self-contained Unit). 먼저, 작성한 소스코드들, 그리고 그렇게 Web 어플리케이션을 만들 수 있는 스텐다드한 구조를 결정하는 것이 Maven이다. 그것을 컴파일 해서 톰캣같은 WAS가 인식하도록 패키징 하는 설정을 pom.xml에 하게 되는데, 그러한 톰캣, Maven archetype, dependency 설정, configuration 설정 등 너무 복잡하고 신경 써야하는 것이 많은 세팅 단계를 간단하게 해 주는 것이 Spring boot이다. 1. WAR 파일과 JAR 파일의 차이점 JAR(Java Archive)의 이름에서도 알 수 ..
1. Advanced Mapping Overview (1) Advanced mappings 지난 게시물에서, Student하나의 테이블에 대해서 Hibernate를 이용하여 데이터를 쓰고, 읽어오고, 수정하고, 삭제하는 과정을 알아보았다.(CRUD features) 하지만 테이블을 관리할때, 테이블 사이에 관계를 같이 관리해야 할때가 있다. 하나의 테이블만 있는것이 아닌 여러개의 테이블이 있을수 있으며, 그 테이블 사이에 대한 관계가 있을수 있기 때문에 이것을 Hibernate로 어떻게 다루는지에 대해서 알아 보겠다. (2) Advanced mapping의 종류 1) One-To-One mapping : 테이블 간의 관계가 일대일로 대응되는 형태이다. 예를들어 Instructor 테이블이 있을때, Ins..
1. Overview (1)Hibernate 개발 과정 1) hibernate configuration file 추가 2) Java class에 annotation추가 3) database operation 수행을 위해 Java code 작성 앞의 게시물에서 Hibernate 개발 과정에서 볼수있듯, hibernate configuration file을 추가하고, Java class인 Student class에 annotation을 통해서 table과 class, column과 field를 각각 매핑시켰다. 이렇게 매핑한 Student class를 database operation을 수행하기 위해 자바코드를 작성하여 database에 CRUD 기능을 만들어 보고자 한다. Sessionfactory와 se..
1. Hibernate Configuration file 추가 (1) Hibernate 개발 과정 1) hibernate configuration file 추가 2) Java class에 annotation추가 3) database operation 수행을 위해 Java code 작성 아래 코드를 src폴더 안에 저장한다. source directory의 root에 저장하는 이유는 hibernate가 이 config file을 사용가능하게 만들어 주는데 그냥 간단하게 하기 위해서 이 위치에 놓는것이지 다른 특별한 이유는 없다. com.mysql.cj.jdbc.Driver jdbc:mysql://localhost:3306/hb_student_tracker?useSSL=false&serverTimezone=..
1. Hibernate (1) Hibernate란 무엇인가? 위의 그림과 같이 Java app에서 hibernate framework를 사용해서 database의 data를 저장하고 회수 할 수 있다. database에서 java객체를 저장하거나 지속할 수 있는 프레임워크라고 보면된다. (2) Hibernate의 장점 - Hibernate는 low-level SQL을 다룰 수 있다. - 내가 개발해야하는 JDBC 코드의 양을 최소화 시킬 수 있다. - Hibernate는 Object-to-relational mapping(ORM)을 제공한다. 따라서 db로 부터 object를 저장하고 회수하는 app을 만들기가 쉽다. (3) ORM(Object-to-relational mapping)이란 ORM이란 객체..
1. Custom Validation Rule 만들기 여기서의 핵심은 annotation을 직접 만드는 방법이라 생각한다. 아래 코드에 대하여 어노테이션 생성시 설정해줘야 하는 것들에 대해서, 좀더 자세하게는 자바 스터디 어노테이션 관련 파트에서 정리하겠다. (1) Custom validation rule이란 이때까지는 Spring에서 제공하는 이미 정의된 validation rule을 사용하여 적용시켜서 유효성 검사를 진행했었다. (@Max, @Min ...) 하지만 유효성을 이미 만들어져 있는 rule에 벗어나는 경우, 만들어서 사용할 수 있는데, custom Java annotation을 만들고 custom business logic, rule을 만들어서 적용할 수 있다. (2) Developmen..
1. @Min, @Max를 이용한 숫자 범위 설정 (1) Development Process - 'Free Passes'필드를 새로운 폼에 추가 - 0에서 10까지만 입력할 수 있고 벗어나면 validation error나오기 1) Customer class에 validation rule 추가하기 2) HTML form에 에러메세지 표기하기 3) Controller class에 Validation 수행하기 4) confirmation page 업데이트하기 (2) 코드 예시 1) Customer class에 validation rule 추가하기 public class Customer { //@NotNull(message="is required") @Min(value=0, message ="must be g..
- Total
- Today
- Yesterday