본문 바로가기

  • 트러블슈팅 [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.. 더보기
  • 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 이라는 인터페이스를 .. 더보기
  • 트러블슈팅 [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.. 더보기