1. 스프링 시큐리티에 대해 계속 학습하는 중이다.
- 평소 기록하는 습관이 잘 잡혀있지 않아 쌓이는 느낌이 없었기 때문에. 이렇게라도 매일의 기록을 남겨서 하나씩 쌓아나가는 과정을 거치려 한다.
2. 로그를 남기며 개발하는 방법을 선택중이다.
- 해당 프로세스 순서를 익힐 수 있는 장점이 있기에 해보고 있다.
- 쓰는 방식은 어렵지 않다.
private final Logger logger = LoggerFactory.getLogger(this.getClass());
처리만 해주면
package com.god.bo.test.controller;
@Controller public class TestController {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@RequestMapping(value = "/test")
public ModelAndView test() throws Exception{
logger.trace("Trace Level 테스트");
logger.debug("DEBUG Level 테스트");
logger.info("INFO Level 테스트");
logger.warn("Warn Level 테스트");
logger.error("ERROR Level 테스트"); return mav;
}
}
와 같은 방식으로 쓸 수 있다.
3. JPA에 대해 배웠던 사실 한가지
- jpa ddl-auto를 create 옵션으로 설정하였는데, 데이터가 drop 되지 않고 계속 남아있는 현상이 발생하였다.
- 왜그런지 이유를 계속해서 찾아보았는데, 음.. 해결된 것으로 보아선 순서문제인 것 같다.(다른 근본 원인이 있다면 댓글 남겨주세요)
- 6번에서 해결하였다.
spring:
profiles:
active: local # 기본 환경으로 local을 활성화 하겠다는 뜻.
---
spring:
jpa:
hibernate:
ddl-auto: create
properties:
hibernate:
# 둘다 적으면 sql문이 터미털에서 형식을 갖추어 보이게 된다.
show_sql: true
format_sql: true
# hibernate: < --- 여기에 두면 왜 안될까??
# ddl-auto: create
profiles: local
datasource:
url: jdbc:h2:tcp://localhost/~/ssotest;MVCC=TRUE
username: sa
driver-class-name: org.h2.Driver
thymeleaf: # 타임리프 설정
prefix : classpath:templates/
suffix : .html
cache : false
4. 새겨볼만한 인생명언
- 가장 느리게 돈을 모으는 것이 가장 빠르게 부자가 되는 지름길이다.
- 느리지만 확실하게. 하나하나씩 알아가고, "쌓아가는" 것이 최고가 되는 지름길이라는 생각이 들었다.
5. Model vs ModelAndView
- 프로젝트를 분석하다 ModelAndView 라는 것이 있어 궁굼해서 찾아보았다.
- 간단하게 설명하자면 MAV에서는 데이터 처리와 뷰 처리를 다 해준다는 장점이 있다.
@GetMapping("/board/content")
public ModelAndView content() {
// 데이터와 뷰를 동시에 설정이 가능
ModelAndView mv = new ModelAndView();
mv.setViewName("/board/content"); // 뷰의 이름
mv.addObject("data", "12341234"); // 뷰로 보낼 데이터 값
return mv;
}
- 반면 Model과의 차이점은 Model은 뷰의 경로를 리턴해준다는 점이다.
@GetMapping("/board/content")
public String content(Model model) {
// 데이터와 뷰를 동시에 설정이 가능
model.addAttribute("data", "12341234"); // 뷰로 보낼 데이터 값
return "board/content";
}
6. JPA 사소한 알게된거
- @Entity 어노테이션이 있는 것들만 ddl-auto 로 관리가 된다. jpa 하단에 있기 때문에 당연한 이야기였지만 정리해본다.
- 이 실수가 왜 나왔는지 생각해보았는데, schema.sql문을 미리 작성해놓았기 때문에 jpa에서 관리할 수 없는 DB였다. 그렇기 때문에 3번과 같은 문제가 나왔던 것 같다. 애초에 관리 안되는 것인데 순서가 무슨상관이었던거지.. 3번 문제 해결!
- 개선하기 위해 sql문을 entity에 작성해서 jpa에서 관리할 수 있도록 만들어야겠다.
7. CLOB vs BLOB
- CLOB (Character Large Object) : 문자데이터의 집합 타입
- BLOB (Binary Large Object) : 이미지와 같은 이진 데이터 타입
8. 잡생각 기록
- 첫날이라 그런지 8개나 작성하게 되는 나를 보며 신기하다. 잡생각이지만, 네이버 채용공채를 보고 매일 TIL을 작성해야겠다는 마음이 들었다. 이 기록을 매일 깃허브 TIL과 연결시켜보고, 잔디까지 심으면 1석2조가 아닐까? 하는 생각이 들었다. 무언가 나중에 다른 개발자들이 보았을 때, 사소하지만 의미있는 정보가 있을 것이라는 생각도 들었다. 물론 나도 도움을 받을 수 있을 것이다. 앞으로 이런 사소한 잡생각까지 다 기록으로 남기기 위해 최선을 다 할 것이다.
'TIL' 카테고리의 다른 글
6. [TIL] 오늘의 배움일지 ( 20-09-23 ) (0) | 2020.09.23 |
---|---|
5. [TIL] 오늘의 배움일지 ( 20-09-22 ) (0) | 2020.09.22 |
4. [TIL] 오늘의 배움일지 ( 20-09-21 ) (0) | 2020.09.21 |
[TIL] 오늘의 배움일지 ( 20-09-20 ) (0) | 2020.09.20 |
[TIL] 오늘의 배움일지 ( 20-09-18 ) (0) | 2020.09.18 |