목록전체 글 (82)
고딩왕 코범석
안녕하세요! 이번 포스팅에서는 제가 JPA를 사용하면서 엔티티에 따라 어떤 쿼리가 날라가고, 제 나름대로 생각한 최선의 방법이 무엇인지 정리해보려고 합니다. 항상 제 의견이 맞는건 아니니 틀린 지식에 대한 피드백은 환영합니다! 이번 포스팅 목차 겸 확인할 부분 orphanremoval=true 에서 delete 쿼리 orphanremoval=false 에서 변경 감지 Cascade=ALL 남발 주의하기 우선, 제가 확인해보고 싶은 부분 및 기능을 정의해보겠습니다. 기능 회원과 게시글이 있으며, 회원은 게시글을 찜할 수 있다. 회원이 게시글을 찜할 경우, 여러 게시글을 동시에 찜할 수 없다. 즉, 게시글 하나씩 찜을 하거나 삭제할 수 있다. 어떤 게시글을 삭제할 때, 이 게시글을 찜한 회원들의 찜목록에서도..
안녕하세요! 이번 포스팅은 저번 시간까지 설정했던 수동 빌드 상태에서 지정된 git repository에 push가 되면 자동으로 빌드하는 과정을 살펴보겠습니다. 먼저, Webhook을 추가하기 위해 추가한 프로젝트의 repository에서 settings > webhooks > Add webhook를 클릭해주세요. 그 다음, Payload URL에 http://{젠킨스url}/github-webhook/을 기입해주고 완료를 누릅니다. 아참! 첫번째 포스팅부터 EC2에서 진행했기 때문에 EC2에 보안그룹규칙을 추가해야 합니다. https://api.github.com/meta에 가셔서 hooks에 있는 url들을 보안그룹 인바운드 규칙에 추가해줍시다. 추가하셨다면, 젠킨스에 플러그인을 설치해야합니다. G..
안녕하세요! 이번 시간에는 Github에서 코드를 푸시했을 때, 젠킨스가 자동으로 빌드하는 과정을 포스팅하려고 합니다. 진행하기 전에 저는 우선 스프링 프로젝트를 깃 레포지토리에 등록한 상황이고, 이번 포스팅에서는 수동으로 build 하는 것 까지만 진행할 예정입니다. blue green 배포를 하기 위해서는 조금 더 공부가 필요해서 빠른 시간내에 포스팅 하도록 하겠습니다. 바로 시작해볼게요! 먼저, 앞에 포스팅에서 진행했던 젠킨스를 접속한 다음, Jenkins 관리 > 플러그인 관리를 들어가서 Publish Over SSH 플러그인을 다운받아 줍시다. 다운로드 받은 후 재시작을 통해 성공적으로 플러그인이 다운받아졌는지 확인해봅시다. 방금과 똑같은 위치에서 설치된 플러그인 목록에서 Publish Over..
안녕하세요! 이번 포스팅에서는 jenkins를 aws ec2에서 설치하는 시간을 가져보겠습니다. 우선 본인의 ec2를 생성해주세요! 저는 ubuntu 20.04 환경에서 진행하도록 하겠습니다. 먼저, docker를 설치해야겠죠? ec2를 접속해주신 다음, 다음 명령어들을 실행해주세요. docker 공식 문서를 참조했습니다. sudo apt-get update # https에서 docker repository를 사용하게끔 해주기 sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release # gpg key 추가 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo g..
안녕하세요! 이번 포스팅에서는 ELK 스택에서 Elastic Search의 기본 개념을 작성해보았습니다.처음이다 보니 틀린 내용들이 있을 수 있어, 가벼운 참고 및 비판적인 시선으로 포스팅을 봐주시면 감사하겠습니다..! 먼저 ELK 스택은 다음과 같습니다. Elastic Search Logstash Kibana Logstash가 Mysql, MongoDB, CSV 파일 등등 어떤 데이터든지 수집해서 Elastic Search에 넘겨주고 Kibana는 Elastic Search에 쌓인 데이터들을 보기 좋게 시각화해주는 역할을 합니다. Kibana가 Elastic Search의 빠른 검색 시스템을 기반으로 데이터들을 가져와 프론트엔드 코드 하나 없이 보기 좋게 보여줍니다. Elastic Search 기본 개..
안녕하세요! 이번 포스팅에서는 다형성을 활용하여 JSON 객체를 받아본 내용을 정리하는 포스팅입니다. 버르장머리 있는 말투는 너무 오랜만이라 어색합니다. 항상 가짜뉴스 제보는 환영합니다! 상황 꺼진 JPA도 다시 보기 위해 김영한님의 강의인 JPA 활용편과 비슷하게 모델링해서 진행했습니다. 완전 똑같지는 않고 차이점이 몇가지 있는데 다음과 같습니다. Item과 Album, Book, Movie는 원래 싱글테이블 전략이었으나 조인 전략으로 변경하였고, Category와 Item의 연관 관계가 ManyToMany였으나 OneToMany, ManyToOne으로 바꿔서 진행했습니다. Album과 Book, Movie를 등록할 때 단순히 컨트롤러에 api를 추가하면 되지만, 저는 한 메서드로 처리하고 싶었습니다...
이번에 적용해볼 것들 Order Service에 요청된 주문의 수량 정보를 Catalog Service에 반영 Order Service에서 Kafka Topic으로 메세지 전송 -> Producer Catalog Service에서 Kafka Topic에 전송된 메세지 취득 -> Consumer kafka 의존성 추가 org.springframework.kafka spring-kafka Catalog Service @EnableKafka @Configuration public class KafkaConsumerConfig { // Consumer 빈 설정 및 등록 @Bean public ConsumerFactory consumerFactory() { Map properties = new HashMap();..
Kafka Broker 실행된 Kafka 애플리케이션 서버 개념 3대 이상의 Broker Cluster 구성 Zookeeper 이러한 브로커들을 컨트롤해주는 역할 즉, 클라이언트가 서로 공유하는 데이터를 관리해주는 역할 분산되어 있는 각 애플리케이션의 정보를 중앙에 집중하고 구성관리, 그룹관리 네이밍, 동기화 등을 제공 Kafka Client Kafka와 데이터를 주고 받기 위해 사용하는 자바 라이브러리 Producer, Consumer, Admin, Stream 등 각종 API 제공 다양한 Third Party Library 존재 Kafka 실행해보기 Zookeeper를 먼저 실행한 다음, Kafka 서버를 기동하자 # window 기준, zookeeper 실행 $KAFKA_HOME/bin/window..