목록분류 전체보기 (417)
오답노트

공연 리니어 공연 3번, 플라메라 공연 1번 은근히 플라메라 공연 꾸준히 하는 중.. 리니어는 달밤별 형 누나들과 같이 기획공연도 했다.. 달밤별 형 누나들이 많이 도와주셨고 아직군과 교선이형도 열심히 준비해주셔서 공연을 잘 마무리할 수 있었다 나머지는 이태원의 비틀즈 펍과 홍대의 클럽 빵 리눅스 마스터 1급 필기 광탈 음 1달? 정도 공부했는데 거의 답만 외우고 시험을 보러가서 그런지 모르는 문제 나오니까 탈탈 털렸다. 그리고 이번년도 부터 CentOS에서 Rocky OS로 바뀌었는데... 그거랑 상관없이 내가 모자랐던걸로.. 북악스카이웨이 리눅스 마스터가 끝나고 힙지로..?를 한바꾸 돌고 어떤 전시회장 갔다가 대판 싸우고 화해하고 이마트 피자 먹고 북악산을 갔다. 1차선 밖에 없는 길인데 주자장 웨이..

일본 후쿠오카 2박 3일 다녀왔다 첫째날은 새벽 비행기를 타고 점심에 내려서 얼른 유후인으로 달려갔다. 유후인 기차를 타는데 공항 밖으로 나오니 일본어 천지라서 겨우겨우 찾아서 탔다. 유후인은 다행히 인싸플레이스라서 그런지 가려는 한국인이 많아 대충 눈치껏 탈 수 있었다. 긴린코 온천은 신비 그 자체였다. 온천수와 빗물 때문에 안개가 자욱했다. 둘째날은 텐진을 돌아다니면서 쇼핑을 했다. 여자친구는 인테리어 가구 쇼핑몰에서 이것저것 둘러보느라 정신 없었고, 난 악기점을 돌다녔다. 이후에 오호리 공원에서 전시를 구경하고 넓디 넓은 호수에서 사진 몇컷 찍고 옷을 싸게 몇개 샀다. 니트를 샀는데 지금도 가끔 입는중 근데 털이 너무 많이 빠진다. 셋째날은 거의 일어나자마자 거의 바로 한국으로 들어와서 거의 2박 ..

여는말 23년에는 다이나믹했다... 에이블스쿨도 끝나고 취업도 해보고.. 파견 나가기 싫었는데 또 파견도 나가고(돌아올 수 없음 ㅎ).. 그리고 공연이 엄청 많았는데 아무튼 여자친구의 권유로 월마다 블로그에 기록해보는건 어떻냐고 해서 수치적으로 딱딱 해놓으면 정신적 만족감이 넘칠것 같아서 써보기로 한다. 여행 1회 노보텔 내 돈으로 간건 아니고 회사 돈으로.. 사진은 뭐 없다.. 삼양목장 겨울의 대관령? 그냥 겨울왕국이다. 사실 그냥 목장인데 눈이 내 목, 가슴 높이까지 쌓여있는걸 보니까 웅장함 그 잡채 바람도 엄청 불어서 대충 서있으면 넘어질거 같았다. 밴드 합주 6회 공연 2회 합주 합주는 보통 합정 근처에서 하는 편.. 평일 1회 주말 1회 진행한다. 생각보다 합주 횟수가 적었네.. 공덕 DGT 아..

식별자와 비식별자 식별자 엔터티를 각각 구분할 수 있는 논리적인 이름을 식별자라고 한다. 언터티가 가지는 속성중 엔터티를 대표할 수 있는 속성을 의미하며 하나의 엔터티는 반드시 하나의 유일한 식별자가 존재 해야한다. 주식별자 특징 유일성 최소성 불변성 존재성 식별자 관계와 비식별자 관계에 따른 식별자 식별자 관계 부모 엔터티로부터 속성을 받아 자식엔터티의 주식별자로 사용하는 경우 반드시 부모 엔터티가 생성되어야 자기 자신 엔터티 생성 부모로부터 받은 속성을 자식 엔터티가 모두 사용하고 그것만을 주식별자로 사용하면 1:1 관계 부모로부터 받은 속성 이외에 다른 부모로부터 받은 속성이나 스스로 가지고 있는 속성으로 주식별자를 구성하면 1:M 관계 식별자 관계로만 관계를 구성하면 조인조건이 많아져 개발자 복잡..
OAuth2 다량의 사용자를 보유하고 있는 벤더에게서 사용자 정보를 위임을 받아 사용자를 가입하게 하는 방식이다. 개발 환경 구축 dependencies { implementation("$boot:spring-boot-starter-oauth2-client") } build.gradle에 위와 같은 의존성을 추가한다. spring: security: oauth2: client: registration: google: client-id: 532557492921-oanhrsrege0kqvb7q1v0v2o4lcu0ktlc.apps.googleusercontent.com client-secret: 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 application.yml 에 위와 같이 설정한다..
세션 관리 서버는 모든 요청에 아이디/패스워드를 요구 할 수 없다. 그래서 한 번 로그인 하면 토큰을 발급하고, 세션에는 토큰을 저장해 세션이 유지되는 동안, 혹은 remember-me 토큰이 있다면 해당 토큰이 살아있는 동안 해당 토큰만으로 사용자를 인증하고 요청을 처리한다. SessionManagementFilter SessionRegistry를 Bean으로 등록하여 SessionInformation(세션 사용자)를 모니터링 할 수 있다. 만료된 세션에 대한 요청은 세션 즉시 종료하고, 만료 판단은 SessionManagementFilter 의 ConcurrentSessionControlAuthenticationStrategy 에서 처리한다. @Bean SessionRegistry sessionReg..
영속성 전이 (Cascade) 영속성 전이는 포함하고 있는 속성에 대해 현재 속성이 받는 영향을 전달하는 것이다. 예를 들어 Book 과 Publisher 가 1:N 관계를 가지고 있고, Book을 제거 하면 Publisher도 같이 제거 해야하는데, 그렇게 하려면 쿼리를 두 번 날려야한다.(각각 삭제에 대한 쿼리) 하지만 영속성 전이를 통해 Book이 삭제 될 때, Publisher와 연결되는 Book이 삭제된다면 해당 Publisher도 삭제한다. @Entity @NoArgsConstructor @Data @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) @DynamicUpdate public class Book extends Base..
1:1 관계 Book 과 BookReviewInfo 의 1:1 관계를 나타내는 예시이다. 연결할 두 Entity에 상대방 멤버 변수를 만들고 OneToOne Annotation을 달아주면 연결된다. OneToOne Annotation에 mappedBy를 설정하게 되면 ToString이 순환 참조로 인해 에러가 발생한다. 둘 다 사용하고 싶다면 한쪽에는 @ToString.Exclude를 사용하자. OneToOne @Entity @NoArgsConstructor @Data @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) public class Book extends BaseEntity { @Id @GeneratedValue(strategy ..
Query Method JPA에서 쿼리문을 직접 작성하지 않고 Method명으로 지정만 하면 자동으로 쿼리를 만들고 요청까지 해주는 편리한 기능이 있다. https://www.javaguides.net/2018/11/spring-data-jpa-query-creation-from-method-names.html Spring Data JPA - Query Creation from Method Names In this article, we will learn how we can create query methods by using the query generation from the method name strategy. Spring Data JPA offers various ways to create a ..
Listener JPA에는 Listener가 있는데, curd를 할 때, Anotation을 활용해 전후로 원하는 로직을 만들어 넣을 수 있다. https://www.baeldung.com/jpa-entity-lifecycle-events#lifecycle Auditing Listener를 통해서 자주 사용하는 기능을 Spring에서 Anotation으로 미리 만들어 놨다. (ex. CreatedDate) 이를 사용하기 위해서 AuditingEntityListener를 상속 받으면 된다. @Data @MappedSuperclass @EntityListeners(value = AuditingEntityListener.class) public class BaseEntity { @CreatedDate priv..