실제하지 않는 엔티티
·
프로그래밍/기타
Article에 Tag를 추가하고 난 뒤 게시글을 추가할때 다음과 같은 오류가 발생했다. Caused by: java.lang.IllegalStateException: org.hibernate.TransientPropertyValueException: Not-null property references a transient value - transient instance must be saved before current operation : com.realworld.study.article.domain.ArticleTag.article -> com.realworld.study.article.domain.Article at org.hibernate.internal.ExceptionConverterImpl..
LocalDateTime의 약간 이상한 시간 표시
·
프로그래밍/기타
RealWorld Postman 테스트 코드를 보면 게시글관련에 아래와 같은 테스트 코드가 들어있다. pm.test('Article\'s "updatedAt" property is an ISO 8601 timestamp', () => { pm.expect(/^\d{4,}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d.\d+(?:[+-][0-2]\d:[0-5]\d|Z)$/.test(article.updatedAt)).to.be.true }) ISO 8601 포맷의 타임스탬프인지 확인하는 코드로, ISO 8601포맷은 아래에 자세히 설명되어 있다. https://ko.wikipedia.org/wiki/ISO_8601 대략, 아래와 같은 양식으로 되어있다. 2016-10-27T17:13..
백준 허브 커스터마이징
·
프로그래밍/기타
아래 글에서 컨벤션에 대해 불편함을 토로한 적이 있다. 백준 허브 사용 후기 🤔 왜 사용하게 되었을까? 이번에 개발바닥에서 "신입은 깃허브 잔디를 매일 심는 것으로도 좋다!"라고 해서 매일 하는 솔브드 잔디 채우기를 떠올리게 되었다. 자연스레 이것을 깃헙과 연동하 2jun0.tistory.com 코드는 깃허브에 공개되어 있으니 내 저장소의 컨벤션에 맞게 수정해보았다. 🧩 내 컨벤션 vs 백준 허브 컨벤션 내 컨벤션 파일 이름 : Algorithm/codes/boj/python/[문제 번호]번 [문제 이름].py 형식으로 저장했다. 커밋 메시지 (커밋은 boj 브랜치에 올라간다.) 최초 문제 풀이 : add: a boj problem [문제 번호] 리팩토링 or 수정 : modify: a boj probl..
9번째 스프린트 회고 - 게시판 좋아요 구현과 JWT활용
·
프로그래밍/기타
🤔 다대다 연결을 어떻게 구현하면 좋을까? 좋아요는 게시글과 사용자의 다대다 관계로 표현할 수 있다. 하지만 다대다 관계 자체를 관계형 DB안에서 그대로 구현할 수 없다. 그래서 결국 엔티티로 만들어 줘야 하는데, 학부시절 DB 수업을 들었던 기억을 살려 게시글의 PK & 사용자의 PK를 묶어 슈퍼키를 구성했다. 그런데.. 자연스레 좀 고민이 들었다. 나에게는 3가지의 옵션이 있었다. @ManyToMany 쓰기 ORM(JPA)에서 제공해주는 기능을 사용하면 굳이 엔티티를 정의하지 않아도 된다. 기능을 잘 사용하면 코드가 간결해지지 않을까 싶었다. 위의 ERD와 같이 양쪽 PK를 묶어 엔티티를 설계하기 학부 전공시간에 이렇게 설계하는 것으로 배웠기 때문에 정답일 것 같다. 양쪽 PK를 FK로만 설정한 뒤,..
백준 허브 사용 후기
·
프로그래밍/기타
🤔 왜 사용하게 되었을까? 이번에 개발바닥에서 "신입은 깃허브 잔디를 매일 심는 것으로도 좋다!"라고 해서 매일 하는 솔브드 잔디 채우기를 떠올리게 되었다. 자연스레 이것을 깃헙과 연동하면 좋겠다고 생각이 들었고, 백준 허브라는 것을 알게 되었다. 백준허브는 크롬 확장프로그램인데 아래에서 간단하게 설치할 수 있다. 백준허브(BaekjoonHub) Automatically integrate your BOJ submissions to GitHub chrome.google.com 😩 아! 컨벤션! 컨벤션~ 테스트로 브론즈 문제를 하나 풀어보았더니 내가 이미 올려놓은 코드와 다른 컨벤션을 쓰고 있었다. 커밋로그도 그렇고, 폴더를 따로 파는건 좀... 그래서 좀 사용하다 불편함이 극에 차면 코드를 수정해 보려한다..
스타듀밸리 순무 모드 업데이트 0.7.0
·
프로그래밍/기타
🚀 뭘 하는가? 2년전 쯤 만들었던 스타듀밸리 순무모드를 한번 수정할 것이다! 오류가 있을 수 있고 완벽하지 않다는 건 알았지만, 뭘 해야 수정할 수 있는지 알지 못해 방치해 두었다.. 사실 아무생각 없이 살았지만 최근에도 모드를 찾아주는 분들이 있어 내가 싼 똥을 치우려 한다. 😫 스타듀밸리 업데이트? 내 윈도우 머신에선 이미 visual studio가 없었기 때문에 초기 셋업부터 하나하나 시작했다. 그래도 이 모드는 쉽게 환경을 구성할 수 있었기 때문에 금방하는 줄 알았더니.. 아마 예전 빌드시 사용했던 .Net Framework의 버전이 달라서 그런 것 같다. 이전 빌드는 4.5를 사용했는데, 비주얼 스튜디오 2022가 나오면서 사용할 수 없게 되었다. 2019를 설치해서 4.5 버전을 사용해도 문..
1.2 IoC_DI를 위한 빈 설정 메타정보 작성
·
프로그래밍/기타
@Component 빈 스캐너가 @Component가 붙은 클래스를 빈으로 등록한다. 아래 클래스는 annotatedHello라는 아이디로 빈 등록된다. @Component public class AnnotatedHello { ... }빈의 아이디는 임의로 설정할 수 있다. @Component("myAnnotationHello") public class AnnotatedHello { ... } @Component는 메타 애노테이션으로도 사용가능하다. 즉, 다음과 같이 커스텀 애노테이션을 정의할 수 있다. @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Compenent public @interface MyComponent { String..
스프링 시큐리티 기본 user/password 안먹힐때 인코더 확인해라!
·
프로그래밍/기타
스프링 시큐리티에 비밀번호 암호화를 위한 인코더를 설정했을땐 application.yml이나 application.properties에 있는 비밀번호도 암호화된 해시 값 이여야 한다. BCryptPasswordEncoder는 아래 주소에서 쉽게 암호화 할 수 있다. https://bcrypt-generator.com/
2jun0
'프로그래밍/기타' 카테고리의 글 목록