일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- AOP
- SpyBean
- spring
- ansible
- golang
- Deserializer
- Proxy
- persistence
- DevOps
- LocalDateTime
- launch-template
- JPA
- ci/cd
- junit
- docker
- Packer
- HandlerMethodArgumentResolver
- cache
- weaving
- MockBean
- rest-api
- terraform
- ehcache
- Jpa Auditing
- serializer
- gocd
- controlleradvice
- playbook
- AWS
- container
- Today
- Total
목록분류 전체보기 (37)
기록용 블로그
리눅스 컨테이너 기술을 이용해 어플리케이션 패키징, 배포를 지원하는 경량의 가상화 오픈소스 프로젝트 Container 기반 가상화 / Hypervisor 기반 가상화 Hypervisor(Vmware)기반 vm은 Host OS 위에 Hypervisor, vm 하나하나 모두에 OS가 올라가고 그 위에 어플리케이션이 올라간다.Hypervisor와 컨테이너는 Guest OS가 있고 없고의 차이가 존재하는데 컨테이너는 각각 이미지에 Guest OS가 올라가지 않는다. Guest OS가 각각 컨테이너에에 존재하지 않아서 가볍기 때문에 vm보다 훨씬 빠르게 구동된다.컨테이너는 Host OS의 내용을 그대로 사용한다. Host OS와 Container의 OS가 다르면 다른 부분만큼만 패키징되며 컨테이너 OS에 대한 i..
Installation for mac $ brew install go for linux $ wget https://dl.google.com/go/go1.11.2.linux-amd64.tar.gz $ tar -C /usr/local -xzf go1.11.2.linux-amd64.tar.gz $ cd ~ $ vim .profile # 아래 내용 추가 export PATH=$PATH:/usr/local/go/bin $ source .profile GOPATH, GOROOT go에서 사용되는 주요 환경 변수 GOROOT go가 설치되는 위치 linux에 설치하고 나니 /usr/local/go 경로에 설치됐다. GOPATH 사용자의 workspace가 설정되는 위치 linux에서 설치하고 나니 $HOME/go가 ..
스프링 기반 REST API 개발 백기선님 slideshare 백기선님 study repository 백기선님의 스프링 기반 REST API 개발 세미나 관련 정리. 앞으로 자바 개발을 할 일이 있을진 모르겠지만 REST API와 관련된 HATEOAS나 Self-Descriptive와 같은 개념은 어떤 언어를 사용해 개발하든 적용될 것 같아서 한번 처음부터 진행해봤다. REST API 일반적으로 우리가 REST API라고 하면서 제공하는건 사실 제대로 된 REST API의 형태를 만족하지 않는다. 여러 요건들을 충족해야 하지만 그중에서도 거의 90% 이상이 아래 두가지 요건은 충족하지 못하고 있다. Self-Descriptive HTTP/1.1 200 OK ContentType: application/j..
Jenkins와 유사한 CI/CD 툴.대략적인 구조는 위의 그림처럼 GoCD서버와 GoCD 에이전트로 이루어져있다. 서버에서 파이프라인을 추가할 수 있는 인터페이스를 제공하고 등록된 파이프라인이 트리거되는 경우 해당 작업 실행을 에이전트에 할당한다. 에이전트에서 구성된 작업을 수행하기 때문에 최소 하나의 이상의 에이전트가 구성되어야 한다. 간단하게 구성할때는 GoCD서버와 같은 서버에 GoCD 에이전트를 설치하면 된다. Installation GoCD Server (RPM based distributions (ie RedHat/CentOS/Fedora)) $ sudo curl https://download.gocd.org/gocd.repo -o /etc/yum.repos.d/gocd.repo $ sudo..
Terraform으로 Auto Scaling Group에서 사용할 Launch Template를 생성해보자. Example Usage 아래는 launch_teamplte 생성에 대한 기본 예시인데 여기서 필요한 정보들만 바꾸고 실행시키면 원하는 launch template를 만들 수 있다. resource "aws_launch_template" "foo" { name = "foo" block_device_mappings { device_name = "/dev/sda1" ebs { volume_size = 20 } } credit_specification { cpu_credits = "standard" } disable_api_termination = true ebs_optimized = true elas..
Terraform은 여러 인프라들에 대한 관리를 제공한다. GUI 환경의 AWS Console을 통해 제어되던 부분들을 코드를 통해 구축, 변경, 버전화할 수 있는 도구다. HashiCorp Configuration Language (HCL) 문법으로 작성된 tf 파일을 통해서 인프라스트럭쳐에 대한 설정들을 코드로 관리한다. 여러 프로바이더들이 제공되고 대표적인 프로바이더로는 Amazon AWS, MS Azure, Google Cloud등이 있다. Installation Mac(brew) $ brew install terraform binary file $ wget https://releases.hashicorp.com/terraform/0.11.8/terraform_0.11.8_linux_amd64.z..
packer에서 프로비저닝을 할 때 shell 스크립트 파일을 실행하거나 인라인으로 실행하는 것 이외에도 ansible playbook_file을 통해 provisioining을 해줄 수 있다. "provisioners": [ { "type": "shell", "inline":[ "ls -al /home/ubuntu", "cat /home/ubuntu/welcome.txt" ] }, { "type": "ansible", "playbook_file": "playbook/main.yml" } ] Packer 빌드 파일 작성 Ansible로 프로비저닝 하기 전에 packer build파일을 먼저 작성하자. { "variables": { "aws_access_key": "{{env `AWS_ACCESS_KEY_..
Hashicorp 에서 만든 가상 머신 이미지를 만드는 오픈소스.Aws의 AMI, Azure Image, Google Cloud Image등을 스크립트 파일을 이용해서 생성할 수 있다.json 파일을 정해진 형식대로 작성하고, 그 json파일을 읽어서 그 데이터를 토대로 AWS나 Azure, Google Cloud의 api를 호출해서 이미지를 만드는 구조인 것 같다. Install OS X라서 HomeBrew를 이용해 설치 $ brew install packer Command packer의 명령어들 Available commands are: build build image(s) from template fix fixes templates from old versions of packer inspect s..
관점지향 프로그래밍(Aspect Oriented Programming) OOP의 공통 기능(로깅, 트랜잭션, 접근 제어 등의 보안) 등에 대한 횡단 영역의 공통된 부분의 중복을 제거하고 모듈화 하는 프로그래밍의 방식 public List findAll() { //log.info("메소드 내용 실행 전 필요한 로그"); //long start = System.currentTimeMillis(); List bestCategories = bestCategoryRepository.findAll(); //log.info("메소드 내용 실행 완료 후 필요한 로그"); //long end = System.currentTimeMillis(); //log.info("메소드 실행 시간 {}", end -start); re..
JPA를 공부하면 계속 나오는 영속성에 대해서 정리. 엔티티 매니저 JPA의 엔티티 매니저(EntityManager)는 엔티티 저장, 수정, 삭제 조회 등 엔티티와 관련된 모든 일을 처리한다. 엔티티 매니저는 엔티티 매니저 팩토리를 통해 생성되는데, 팩토리는 아래와 같이 생성할 수 있다. 팩토리는 일반적으로 하나의 DB를 사용하는 경우 하나의 Factory만 생성한다. EntityManagerFactory emf = Persistence.createEntityManagerFactory("note"); 엔티티 매니저는 팩토리를 통해 필요할 때 마다 생성할 수 있다. EntityManager em = emf.createEntityManager(); - EntityManagerFactory - 생성 비용이 크..