반응형

2019/09

    데이터 베이스 버전 컨트롤 Flyway

    Spring에서 초기 테이블과 데이터 관리를 위해서 data.sql과 schema.sql을 사용하였다. 하지만 테이블 스키마가 변경되거나 필수로 초기에 들어가야하는 데이터들이 추가되거나 수정되었을 때 히스토리 관리가 잘 되지 않았다. 특히 서로 교류가 잘 되지 않은 경우에서는 컬럼이 추가되거나 무엇이 변경되었는지 알지 못해서 문제를 유발할 수 있기에 이를 관리 할 수 있는 무언가가 필요했다. 그래서 Redgate에서 제공하는 Flyway를 사용해보기로 했다. 우선 내 개인 프로젝트인 timeline에 적용시켜봤다. 데이터베이스 버전관리 Flyway https://flywaydb.org/ 동작 방식 Flyway가 버전관리를 하기위해서 테이블이 생성된다. Flyway가 버전관리는 이 테이블에 데이터베이스의 ..

    Java 메모리 구조 및 GC 알고리즘 정리

    자바 메모리 구조는 1.8 이후로 일부분 바뀌었다. 이 부분에 대한 정리를 다시 하고 싶었고 GC 알고리즘에 대한 종류와 상세 내용을 정리하고 싶었다. 그럼 이 두 가지 사항에 대해 가볍게 정리해보자. Java 메모리 구조 Method Area 프로그램이 실행되는 도중에 아직 사용되지 않은 클래스들의 코드는 new를 통해 클래스의 인스턴스가 생성되면 JVM Method Area에 인스턴스 변수, 메스드 코드, 클래스 변수등을 저장한다. 해당영역은 모든 쓰레드 사이에서 공유되고 static 키워드로 생성된 변수 또한 저장을 Runtime Constant Pool 영역에 저장한다. 실 데이터를 저장하는 것이 아니라 레퍼런스만 저장하며 실제 데이터는 Heap 영역에 저장한다. JVM Language stack..

    Typescript 헷갈리는 부분 정리

    Any vs Object vs Unknown - typescript에서 모든 타입은 any type의 서브 타입들이다. 그래서 어떠한 제약도 없는 모든 타입을 받아서 사용할 수 있다. - object non privitive type으로 undefined, string, boolean, symbol같은 primitive type을 허용하지 않는다. 대신 null은 허용된다. (null은 태생이 object) - unknown 타입은 any 타입처럼 어떤값도 넣을 수 있다. 하지만 ts compiler는 unknown 타입에 대한 어떤 오퍼레이션도 허용하지 않는다. 게다가 unknown 타입은 오직 any 타입만 할당 할 수있다. 자료형 캐스팅 방법 - let strLength: number = (some..

    spring boot api를 쿠버네티스로 deployment 해보기

    저번 글에서 기본적인 쿠버네티스 관련 개념과 자원에 대해 공부했다. 이제 실질적으로 api애플리케이션을 하나 만들어보고 배포까지 진행해보자. 로컬 이미지를 담을 registry 생성 쿠버네티스의 노드들은 외부와 연결되는 경우도 있지만 그렇지 못하는 환경도 많이 존재한다. 그럴 경우 이미지를 내려받을 수 없고 로컬에서만 만들어서 사용할 이미지를 등록할 registry가 필요하다. # registry 이미지 가져오기 docker pull registry:latest # 레지스트리 실행 docker run --name MyPrivateRegistry -d -p 5000:5000 registry 애플리케이션 생성 우선 spring boot gradle 프로젝트로 아무것도 만들지 않고 바로 빌드해서 사용해보자. ..

    kubernetes 기본 개념정리와 구성 알아보기 (설치 포함)

    docker를 사용하면서 그 편리함을 느끼고 있었다. 그리고 요 근래 it회사에서 docker와 kubernets를 이용하여 인프라를 운영을 하는 것을 많이 들었다. 나는 그런 환경을 접해보지는 못했기 때문에 정확하게 kuberntes가 무엇인지 잘 모른다. 그래서 이번 기회에 kubernets(이하 쿠버네티스)에 대한 기본 개념을 정리하고 설치해서 공부를 위한 초석을 닦아보자. 쿠버네티스 (kubernetes) 쿠버네티스는 도커 컨테이너 운영을 자동화 하기위한 오케스트레이션 도구이다. 구글에서 만들었으며 컨테이너를 운영하고 다루기 위한 api와 cli등을 제공한다. 컨테이너 배포 이외에도 효율적인 컨테이너 배치 및 스케일링, 로드밸런싱, 헬스 체크, secure등의 기능을 제공한다. AWS ECS 와 ..

    [공유] 우분투 설치 시 boot efi 관련 오류 수정 방법

    와이프가 결혼전에 집에서 사용하던 노트북 lenovo 제품이 있어서 이걸 간단하게 사용할 서버로 쓰고 싶었다. 그래서 우분투를 설치하려고 하는데 계속 the 'grub-efi-amd64-signed' package failed to install into /target/. Without the GRUB boot loader, the installed system will not boot. 라는 오류만 발생했다. 구글링을 하면서 efl boot 영역을 설정해주고 별짓 을 다해도 안되었는데 오늘 아침에 이 유튜브를 보고 해결했다. 나중을 위해서 공유해논다. https://www.youtube.com/watch?v=DWlB0_f3GAY

    개발용 맥북 외장 모니터4K 삼성 모니터 U28E590 개봉

    모니터가 10년정도 된 걸 사용하다보니 눈이 너무 아프고 해상도가 부족해서 코드볼때도 너무 힘들었다. 그래서 큰맘 먹고 그동안 고대하던 4k모니터를 구매했다. 다른 벤큐나 엘지꺼는 더 좋아보이는데 가격이 너무 비싸서 저렴한 삼성 모델로 주문했다. 쿠팡 로켓배송으로 시키니 바로 다음날 새벽에 왔다. 일요일날 시켰는데 월요일 새벽에 와서 출근전에 이렇게 써보고 갈 수 있는게 정말 신세계인거 같다. 박스도 어마어마했다. 28인치 모니터다 보니 보호 박스는 거의 30인치는 되어보였다. 조심히 박스를 뜯고 부속품을 하나 씩 열어봤다. 전체적으로 구성품은 모니터 화면과 목 받침대 그리고 모니터 목, 어댑터 dp to dp, hdmi to hdmi 케이블이 존재 했다. 조립은 도라이버가 없어도 될 수 있게 잘 만들어..

반응형