어제 밤에 피곤해 죽을거같아서 끝내기 직전에 발생한 일들을 적으려다 말았는데
놀랍게도 지금 아침인데 바로는 생각이 안난다
컴퓨터에 집중해서 못남기겠으면 포스트잇으로라도 남겨놓자
알고보니 그저께 현준님이 나와 동일한 이슈를 겪었다는걸 알게돼서 밤11시에 신나게 얘기했다
아침부터 넘 피곤해서(물론 안 그런날이 있었겠느냐만)
커피도 마시고, 산책도 하고, 샤워도 했는데, 잠이 결국 안깨서 카페로 나왔다
전에 무슨말인지 감도 안오던 개념들이 이제 후폭풍으로 밀려오는데
그거 감당하기가 쉽지 않다
Overwhelm 되지 말고 그냥 하나라도 할수 있는만큼 정리하고 기록하자
JPA 편의관계 메서드 이해해야 되는데 -> 영속성부터 이해해야 하는것 같다ㅠ
@NotNull @NotEmpty @NotBlank + Bean Validation
예전에도 한 번 관련글을 봤었는데 그 때는 이런것도 있구나 했었다가
자바스크립트로 일전에 유효성 검사 실행했던 경험+어제 notnull 얘기 나온것을보고
갑자기 다시 보고 싶어졌는데 다시 보기를 잘한것 같다.
@NotNull 이름 그대로 Null만 허용하지 않음 따라서, "" 이나 " " 은 허용
@NotEmpty 는 null 과 "" 은 막히되, " " 은 허용
세개 중 가장 validation 강도가 높은 것으로,@NotBlank 는 null 과 "" 과 " " 모두 허용하지 않음
근데 @NotEmpty와 @NotBlank는JPA에서 DDL을 생성해주지 않음 => Entity에는 @NotNull 을 쓰자~~
참고 : https://sanghye.tistory.com/36
Bean Validation
그리고 이거 보면서 이게 그냥 어노테이션 123이 아니라 Bean Validation 에 속하는 어노테이션이라는것을 알게되었다.
https://kafcamus.tistory.com/15
https://unluckyjung.github.io/jpa/2022/01/17/JPA-Notnull-Column/
https://kafcamus.tistory.com/16
배경지식이 가장 잘 설명되어있는 포스트 : https://jaimemin.tistory.com/1884
NHN에서의 엄청 자세한 설명 : https://meetup.toast.com/posts/223
추가로 살펴볼만한 validation 관련 어노테이션
@Pattern : 값이 정규표현식에 일치하는지 검사. null은 체크 안함.
@AssertTrue / @AssertFalse : true인지 false인지 검사. null은 체크 안함
요즘 Hibernate라는 키워드도 눈에 자주 보이는데... 이것도 조만간 확인하자~~!
JPA = Java Persistence API
JPA라고 그냥 쓰고 있었는데, 풀어서 쓰면 Java Persistence API라고 한다.
영속성 영속성 거리길래 뭔가해서 보니 Persistence 를 영속성이라고 부르는것같다.
영속성 개념이 뭔가 중요하다고 계속 언급도 되고, 저번 컬럼 변경 사태랑도 비슷한거같아 더 살펴봐야할듯 하다.
Gradle VS Maven
- 뭐좀 구현해보려고 하면 Maven으로 설정해놓은 블로그들이 많이 있었다.
- 근데 내가 처음부터 쓰던 것은 gradle이었다.
- 그래서 이런것들을 마주할 때면 gradle로 하는게 맞나 라는 생각이 들었는데, 기존에 Maven이 많이 사용되고 있어서 그랬다는걸 알게됐다.
- 어쨌든 gradle이 아래와 같은 이유에서 장점을 가지고 있다고 하며, 점차 그 추세가 확장중인것 같다. 등장 초반에는 부족한점들이 있었던 것으로 보이지만, 그러한 부분도 많이 개선이 되었다고 함.
1. 스크립트 길이와 가독성 면에서 gradle이 우세하다.
2. 빌드와 테스트 실행 결과 gradle이 더 빠르다. (gradle은 캐시를 사용하기 때문에 테스트 반복 시 차이가 더 커진다.)
3. 의존성이 늘어날 수록 성능과 스크립트 품질의 차이가 심해질 것이다.
출처: https://dev-coco.tistory.com/65?category=1009530 [슬기로운 개발생활:티스토리]
- 그리고 확실히 가독성면에서 gradle이 뛰어나긴하다. XML로 쓰인 maven은 너무 html문서를 읽는 느낌
메이븐(Maven)과 그래들(Gradle)의 개념 및 비교
스프링과 스프링부트를 공부 하려던 중 maven과 gradle을 알게되었습니다. maven과 gradle이 빌드관리도구인 것은 알고있지만 자세한 개념은 모르기에 maven과 gradle 각각의 개념과 정확한 차이점을 알
dev-coco.tistory.com
Gradle로 프로젝트를 진행하니까 익숙하기도 하고, 관련 글도 자주 보는데
maven은 오히려 문외한이다보니 여기에 나온 특징을 오늘 한 번 짚고 넘어가도 좋을듯
여기서 메이븐의 특징적인 점은 그 라이브러리들과 연관된 라이브러리들까지 거미줄처럼 모두 연동이 되서 관리가 된다는 점입니다.
즉, 메이븐은 네트워크를 통해 연관된 라이브러리까지 같이 업데이트를 해주기 때문에 사용이 편리합니다.
POM - Project Object Model
Maven의 기능을 이용하기 위해 POM이 사용됩니다.
POM은 약자 이름 그대로 Project Object Model의 정보를 담고 있는 파일입니다.
pom.xml에서 주요하게 다루는 기능들은 아래와 같습니다.
- 프로젝트 정보 : 프로젝트의 이름, 라이센스 등
- 빌드 설정 : 소스, 리소스, 라이프사이클별 실행한 플로그인 등 빌드와 관련된 설정
- 빌드 환경 : 사용자 환경 별로 달라질 수 있는 프로파일 정보
- pom 연관 정보 : 의존 프로젝트(모듈), 상위 프로젝트, 포함하고 있는 하위 모듈 등
출처:
https://dev-coco.tistory.com/65?category=1009530
[슬기로운 개발생활:티스토리]
Git Upstream 관련해서 이것도 보자
https://coding-groot.tistory.com/80
Fork한 저장소에 upstream의 최신 commit 가져오기 :: GitHub Compare / Bitbucket / add remote
내가 Fork한 후에 올라온 upstream 의 commit 가져오기/동기화하기 upstream이란? Fork의 대상이었던 원래의 저장소. 방법 1: GitHub Compare 기능 GitHub에서 ( upstream 을 Fork한 내 저장소 upstream 저장소)..
coding-groot.tistory.com
Git fetch 는 그냥 확인만, Git Pull [remote주소] 하면 fetch+merge 할 수 있음!
'TIL WIL' 카테고리의 다른 글
20220722 TIL (0) | 2022.07.22 |
---|---|
20220721 TIL (1) | 2022.07.21 |
20220719 TIL (0) | 2022.07.18 |
20220718 TIL (1) | 2022.07.18 |
WIL (0) | 2022.07.17 |