교육 (Today I Learned)/Hanaro 74

[Hanaro] 56일차 / MySQL 연동, Spring Boot (MVC, DTO)

MySQL 데이터베이스 연동 MVC application.properties 추가 spring.jpa.hibernate.ddl-auto= none 기본 값, 데이터베이스 구조는 변경되지 않는다. update Hibernate 주어진 엔터티 구조에 따라 데이터베이스를 변경한다. create 매번 데이터베이스를 생성하지만 닫을 때 DROP 하지 않는다. create-drop 데이터베이스를 생성하고 SessionFactory가 닫힐 때 삭제합니다. validate 엔티티와 스키마가 다르다면 예외발생 예시 # thymeleaf spring.thymeleaf.cache=false # jpa spring.jpa.hibernate.ddl-auto=none spring.jpa.generate-ddl=false spri..

[Hanaro] 55일차 / Spring Boot (Model에서 REST API로 변환)

Model에서 REST API로 변환하기 작성 코드 Model 이전 메소드 (@Controller) private List memberList = new ArrayList(); // 회원가입 @PostMapping("/join") public String join(@RequestParam("inputName") String inputName, @RequestParam("inputEmail") String inputEmail, @RequestParam("inputPw") String inputPw, Model model) { Member member = new Member(); member.setUsername(inputName); member.setEmail(inputEmail); member.setPa..

[Hanaro] 54일차 / Spring Boot (Test)

Spring Boot Test Test 관련 어노테이션 @SpringBootTest 테스트 환경을 기본 설정해주는 어노테이션 @Test 테스트할 메소드에 붙이는 어노테이션 @DisplayName(”메소드 이름”) 해당 어노테이션에 메소드 이름을 적으면 콘솔에 출력된다. @BeforeAll 해당 메소드가 클래스 초기화시(테스트 실행 시 시작할 때) 한 번 수행되도록 하는 어노테이션 static 메소드로 생성 (static void 메소드명() {…}) @BeforeEach 해당 메소드가 @Test 메소드를 호출시마다 한 번 수행되도록 하는 어노테이션 void 메소드명() {…} 테스트 방법 build.gradle에 아래 코드 추가 testCompileOnly 'org.projectlombok:lombok'..

[Hanaro] 53일차 / Jar 생성, Bootstrap, H2 DB 연동, Spring Boot (JPA, JPQL, Native SQL)

Jar 파일 생성 인텔리제이 File - Project Structure Project Settings - Artifacts에서 + 버튼 누르고 Jar - From modules with dependencies… 클릭 Main Class 선택 (psvm 있는 클래스 지정) 후 OK Build - Build Artifact에서 Action - Build 선택하면 jar 파일 생성 완료 마우스 오른쪽 누른 후 run 하거나, 터미널에서 java -jar jar파일명 입력 으로 실행 Bootstrap html 코드 자동생성 ! 누르고 엔터 부트스트랩 적용하기 head 태그 블록 안에 title 태그 바로 밑에 붙여 넣기 body 태그 끝나는 줄 바로 위에 아래 코드넣기 ... 부트스트랩의 모든 속성은 클래스 ..

[Hanaro] 51일차 / Spring Boot (Devtools, LocaleResolver-다국어 처리, 스프링과 스프링부트의 차이)

Spring Boot Devtools Devtools html 파일 저장 시 서버 재시작없이 view 파일 변경 가능 적용 build.gradle - dependencies 안에 아래 코드 추가 developmentOnly 'org.springframework.boot:spring-boot-devtools' preferences - 컴파일러 - 프로젝트 자동 빌드 체크 고급설정 - 컴파일러 - auto-make 허용 체크 우측 상단에 구성 편집 - 옵션 수정 update 작업 시 - 클래스 및 리소스 업데이트 프레임 비활성화 시 - 클래스 및 리소스 업데이트 application.properties 안에 아래 코드 추가 spring.devtools.restart.enabled=true spring.thy..

[Hanaro] 50일차 / Spring Boot (builder, 어노테이션, Rest API)

builder로 값 넣기 builder().build()로 List에 값 넣기 이전 방식은 new 인스턴스 생성후 setter로 값 넣기였지만, builder로 값을 넣을 수 있다. (가독성 더 좋아짐) 클래스명 변수명 = 클래스명.builder().변수명(값).build(); 형태 그 이전에 먼저 해당 엔티티 클래스에는 @Builder 어노테이션을 줘야한다. 예시 @Data @Builder public class Member { private String username; private String password; private String email; private LocalDate joindate; } 이후 컨트롤러에서 메서드에 builder() 코드 추가 예시 Member member1 = Me..

[Hanaro] 49일차 / Spring Boot (Thymeleaf, 데이터 전달 및 Param 값 받기, List로 데이터 저장)

Thymeleaf 타임리프의 조건식 th:if if 조건이 false인 경우 해당 값이 랜더링되지 않는다. 예시 th:unless unless 조건이 false인 경우 값이 출력된다. 예시 th:switch 예시 사용자는 관리자입니다. 사용자는 손님입니다. 사용자는 그외 권한입니다. th:block 타임리프의 자체 로직을 위한 블록 태그 위의 조건식과 함께 사용한다. 예시 address_null은 null입니다. address_null은 null이 아닙니다. 타임리프의 날짜/금액 출력 날짜 컨트롤러에서 model.addAttribute("localDate", LocalDate.*now*()); html에서 금액 컨트롤러에서 model.addAttribute("number1", 12345678); html..

[Hanaro] 48일차 / Spring Boot (어노테이션, Thymeleaf, Request Mapping)

백엔드 개발 심화(JAVA) 01 Web Applicaiton 개발 환경 세팅 및 Architecture 이해 Spring boot Dir 환경 src/main/java Controller, Service, Repository, DTO, Entity 등 서버 사이드에서 필요한 자바 클래스 생성 프로젝트 생성 시 만든 package를 기반으로 이후 새롭게 만들어 사용 src/main/resources/static Thymeleaf를 이용하여 웹 애플리케이션에 필요한 이미지, CSS, JS 등 기입 src/main/templates Thymeleaf를 이용하여 개발 시 화면 파일 작성 (JSP 미사용) src/main/webapp/view JSP를 이용하여 개발 시 View에 해당하는 JSP 작성 appli..

[Hanaro] 47일차 / SQL (DML, DDL, 제약조건, 데이터타입, 윈도우함수, 데이터모델링)

07 DML 이해 및 실습 데이터 조작어(Data Manipulation Language, DML) 데이터 추가(INSERT), 변경(UPDATE), 삭제(DELETE)할 때 사용 INSERT 테이블에 새로운 행 삽입 INSERT INTO 테이블명 VALUES(값1, 값2, …); 컬럼명 생략 가능하나, 삽입할 값이 테이블의 컬럼 수와 순서도 동일해야 한다. INSERT INTO 테이블명(컬럼1, 컬럼2, …) VALUES (값1, 값2, …); UPDATE 기존 행에 있는 데이터 값 변경 UPDATE 문에 WHERE 절이 없으면 모든 행의 값이 변경되므로 주의! UPDATE 테이블명 SET 컬럼1=값1, 컬럼2=값2 [WHERE 조건]; JOIN을 사용한 UPDATE 하위 쿼리에서 메인 쿼리의 대상 테..

728x90