일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- jwt token
- jwt example
- jvm 메모리 구조
- jvm 모델
- springboot maven plugin
- springboot jwt
- jpa pagination
- intern
- mongodb install ec2
- spring-boot-maven-plugin
- jvm memory model
- String Pool
- spring jwt
- docker mongodb install
- JWT
- Constants pool
- String Constants Pool
- docker mongodb
- springboot mongodb config
- JPA
- angular jwt
- string comparison
- spring filter ordering
- filter ordering
- springboot jwt example
- springboot-angular-jwt
- 기본 Manifest 속성이 없습니다
- HHH000104
- install mongodb docker
- jvm memory structure
- Today
- Total
목록전체 글 (35)
개발블로그
해당 경고는 영속성 컨텍스트가 "엔티티가 변경되었는데, 그 엔티티의 속성이 updatable = false 라서 못바꿔~ " 라고 알려주는 경고이다. 상황 1. Product 엔티티와 User 엔티티가 연관관계의 상태 @Entity data class Product( @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id", nullable = false) override var id: Long? = null, @Column(name = "uid", nullable = false) val uid: Long ...생략... ) { @JsonIgnore @OneToTone(targetEntity = ProductExtra::cla..
이는 서버를 부팅시킬 때 swagger에서 발생시키는 warning이다. enum type을 request의 parameter로 받고자하지만, 명시하지 않을 때 위와 같은 warning이 발생한다. 따라서 @RequestParam 이라고 명시해주면 warning은 사라진다. @GetMapping(...) fun test( @RequestParam statTarget: StatTarget ){...}
결론은 1:N 관계에서 fetch join과 pagination은 동시에 할 수 없다. 따라서 pagination을 한 뒤, fetch하여 조합하는 방법을 택했다. 요구사항과 문제는 다음과 같았다. 어드민 화면을 구성하는데, A,B,C,D Table에 있는 컬럼들을 기준으로 검색과 페이징이 가능해야 했다. 예를 들어, 검색 필드에 "이름" 이 있다. 이름 필드에 값이 들어오면(null이 아니면) 이름은 where 절에 포함되어야한다. 하지만 이름 값이 null로 들어오면 where절에 포함되지 말아야한다. 그리고 위와 같은 검색 필드는 A,B,C,D table 각각에 1개 이상씩 존재한다. 검색 결과 응답 컬럼은 A,B,C,D,E,F Table에 있는 컬럼들이었다. 엔티티의 관계 관계의 중심은 A였고, ..
spark application을 빌드하고, packaging된 jar파일을 S3에 업로드해야 했다. 이 때, aws codebuild를 이용하기로 했다. 먼저 aws codebuild 프로젝트를 생성한다. 소스는 Github에서 관리하고 있으므로 소스 공급자에서 GitHub을 선택한다. 하나의 Repository가 Submodule로 여러 Spark application을 가지고 있는 구조이기 때문에 추가 작업을 해주었다. Submodule인 cf-item2item 내에 있는 buildspec.yml을 참조하여 build하라는 설정을 준 것이다. buildspec.yml은 다음과 같다. version: 0.2 phases: install: runtime-versions: java: corretto8 b..
zeppelin을 brew로 설치하려 했으나, 버전 문제로 실패했다. 따라서 직접 tgz 파일을 다운로드해서 실행시켰다. zeppelin download 에서 tgz 파일을 다운로드 후, 다음 명령을 실행한다. tar -zxvf zeppelin-0.8.0-bin-all.tar cd zeppelin-0.8.0-bin-all $ cd bin $ ./zeppelin-daemon.sh start 그리고 localhost:8080 으로 바로 붙을 수 있다. 그리고 conf/zeppelin-site.xml 에서 host, port, notebook 위치 등을 변경할 수 있다.
1. jupyter notebook 설치 brew install python3 python3 -m pip install --upgrade setuptools pip3 install jupyter 실행을 위해서 다음 명령을 입력한다. jupyter notebook 2. spark 설치 spark가 실행되기 위해서는 java가 설치되어 있어야 한다. oracle download에 접속해 jdk1.8을 다운로드 받는다. spark download에 접속해 spark tgz파일을 다운로드 후, 다음 명령들을 실행한다. tar -xzf spark-2.4.4-bin-hadoop2.7.tgz mv spark-2.4.4-bin-hadoop2.7 /opt/spark-2.4.4 ln -s /opt/spark-2.4.4 /..
MSA 기반으로 프로젝트를 구성하면, 파생되는 여러가지 단점(?)이 있다. 이를테면, 각 서비스마다 호스트가 달라서 생기는 불편함이 있다. 각 서비스의 API들을 호출하는 쪽에서 서비스에 따라 어떤 호스트로 요청해야할지 신경 써야하기 때문이다. 따라서 MSA로 프로젝트를 구성하려 한다면, Service Mesh Architecture도 함께 고려해야한다. 그 중 하나가 api-gateway이다. api-gateway의 역할 중 하나는 요청 URL에 따라 어떤 서비스로 요청을 라우팅할지 관리하는 것이다. 다시 말해, API를 호출하는 쪽에서는 api-gateway로만 요청을 전송한다. 실제로 요청이 어느 서비스에 라우팅시킬지 결정하는 것은 api-gateway의 역할이다. Api Gateway 서버 세팅 ..
kotlin의 data class는 기본적으로 constructor, getter, setter를 생성해준다. 따라서 lombok library를 쓰는 것과 같이 루틴한 코드를 생략할 수 있다. 이 때 생성되는 constructor 스펙은 data class에 정의한 모든 field를 주입받는 형태이다. 기본 생성자 스펙 외의 다른 스펙의 생성자를 두고 싶다면 다음과 같이 정의한다. data class ResponseEntity( val code : Int ,var message: String? ,var payload: T?){ constructor(code: Int) : this(code, "", null) constructor(code: Int, message: String?) : this(code ..