본문 바로가기

  • SW 공부 [Jackson] 상속관계 deserializing @JsonTypeInfo 인터페이스나 추상클래스를 이용하여 다형성을 구현한 경우, 실제 클래스가 무엇인지 알려주는 설정을 하는 어노테이션 json type 이라는 메타정보를 생성하여 사용하고 이 메타정보는 json 에 추가 프로퍼티로 들어간다. 이 추가 프로퍼티는 직렬화에 관여되지 않는다. 속성으로 ID, AS, property 를 갖는데, 이것은 사용예시를 보면서 하나씩 보자. 1. @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS) // @class 라는 추가 프로퍼티가 생기고 패키지.클래스명으로 값이 자동으로 세팅됨 // @JsonSubTypes 을 안줘도 자동으로 서브 클래스를 등록한다.(이건 확인 필요) @JsonTypeInfo(use = JsonTypeInfo.Id.C.. 더보기
  • SW 공부 [Kotlin] 코루틴 기초 kotlinlang.org/docs/coroutines-overview.html Coroutines - Help | Kotlin kotlinlang.org 코루틴에 앞서 suspend 함수 - suspend fun 은 중단점(다른 suspend fun 호출)을 가지는 함수, 중단점이 없다면 suspend fun 의 의미가 없을듯 - 보통의 함수는 시작하고 1번만 반환한다. - suspend fun 은 코루틴 안에서 동작할 때 중단점에서 반환되고 다시 중단점 이후부터 실행되고를 반복한다. - suspend fun 은 컴파일에 의해 Continuation passing style 로 변환된다. 별다른건 아니고 일반적인 코드형태 - suspend fun 의 마지막에 continuation 이라는 인터페이스를 .. 더보기
  • 트러블슈팅 [Aws] s3 메타데이터 설정하기 s3 메타데이터 설정하기 s3 의 파일을 브라우저에 직접 입력하면 바로 다운로드가 된다. 이유는 아무 설정하지 않은 경우 업로드 된 객체의 메타데이터 content-type 이 application/octet-stream 이기 때문이다. 이 메타데이터는 s3 객체 다운로드를 요청하면 그대로 response header 로 전달된다. pdf 파일의 경우, 내장 pdf 뷰어를 사용하기 위해 객체 업로드 할때 또는 업로드 이후에 aws 콘솔에서 메타데이터를 조절한다. 방식 메타데이터 설정 비고 다운로드 우선 Content-Type: application/pdf Content-Disposition: attachment; filename="filename.jpg" pdf 뷰어를 이용하기 위해 application.. 더보기
  • 트러블슈팅 [JPA] OneToMany 에서 child 를 지웠는데 update 쿼리가 날아간다고? 현재 코드 단방향 OneToMany 매핑, AccountGroupDetails 에서는 매핑관계 없음 부모 클래스에서 자식 클래스 CRUD 를 모두 하려고 함 식별관계 - 부모키가 자식PK 에 포함 @Entity data class AccountGroup( @Id @GeneratedValue(strategy = GenerationType.IDENTITY) var accountGroupId: Long? = null ... ... ... ) { @OneToMany(fetch = FetchType.LAZY, targetEntity = AccountGroupDetails::class, cascade = [CascadeType.ALL], orphanRemoval = true) @JoinColumn(name = "a.. 더보기
  • SW 공부 [Ssh] ssh 키를 이용하여 로그인하기 ssh를 이용하여 서버에 연결하기 위해서는 id/pw 또는 key 가 필요하다. 아래에서는 key를 생성하고 교환하는 방식에 대해 알아본다. 1. key 생성 windows 에서는 puttygen, ubuntu 에서는 ssh-keygen 으로 공개키와 개인키 세트를 생성할 수 있다 개인키는 클라이언트가 공개키는 서버가 가진다. $> ssh-keygen // 이후 스크립트 설명에 따라 생성, 모르면 그냥 엔터하면 기본값으로 생성 2. 공개키 전송 $> scp ~/.ssh/id_rsa.pub 사용자ID@서버명:id_rsa.pub aws ec2 생성시에는 aws에서 키페어를 만들고 개인키는 다운로드 받고 공개키는 인스턴스의 authorized_key에 자동으로 들어간다. 3. authorized_keys 에 .. 더보기