분류 전체보기

myGoodPlace
docker로 RabbitMQ 설치하기
RabbitMQ는 메시지 브로커로, 비동기적으로 메시지 전달하는 전달자입니다. 이번에 마이크로서비스 아키텍처 기반의 프로젝트를 진행하면서 각 서버간의 메시지를 전달하기 위해 RabbitMQ를 사용해보았습니다.프로젝트 발표를 마친 후, 로컬 환경에서 리팩토링을 하기위해서 로컬로 RabbitMQ를 설치하고, 자바 프로젝트의 환경변수를 바꿔줄 필요가 있었습니다. Docker를 활용하여 RabbitMQ와 웹관리콘솔을 이용하는 방법을 함께 공유하고자 합니다. 1. RabbitMQ 이미지 받기docker pull rabbitmq  2. 포트 바인딩하여 컨테이너 실행docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq  3. 웹 관리 콘솔 활성화 3-..
[백준/BOJ7795] 먹을 것인가 먹힐 것인가
[백준/BOJ]문제 #7795 내가 작성한 코드import java.io.*;import java.util.*; class Main{ public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); StringBuilder sb = new StringBuilder(); StringTokenizer st; int T = Integer.parseInt(br.readLine()); for(int..
nvm으로 node.js 설치하기
1. nvm 설치brew install nvm `/opt/homewbrew/Cellar/nvm` 에 설치 됐다는 것을 볼 수 있습니다.  2. nvm 버전 확인 및 환경변수 설정하기nvm -v vi ~/.zshrc `vi ~/.zshrc` 명령어로 들어가, 아래와 같이 입력해줍니다. export PATH="$PATH:$HOME/.rvm/bin"export PATH="$PATH:/opt/homebrew/bin"export NVM_DIR="$HOME/.nvm" [ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && . "/opt/homebrew/opt/nvm/nvm.sh" [ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && . ..
[MSA] Service Discovery(서비스 디스커버리)가 무엇이고, 나는 어떤 방식을 선호할까?
MSA에 대해 조금씩 알아가보자.  그럼, MSA가 무엇인지부터 봐야할 것 같다.  MSA가 뭘까?MSA(MicroService Architecture)란, 하나의 큰 애플리케이션을 여러 개의 작은 서비스(MicroService)로 쪼갠 구조를 의미한다. 나눠진 각각의 서비스는 의존성을 갖지 않고, 최대한 독립적으로 실행되도록 해야한다.  그럼, 서비스는 어떤 단위로 나누는거지?기능, 목적, 스케일을 기준으로 나눌 수 있다.독립적으로 실행될 수 있는 구조를 갖어야 하기때문에, 배포가 가능한 단위가 된다.  서비스가 각각 독립적으로 실행된다고 했는데, 그래도 내부적으로 다른 서비스가 필요하면 어떡해?각 서비스끼리 통신을 통해 요청을 주고 받아 이러한 부분을 해결한다.  근데, 어떻게 알고 서비스끼리 통신을..
[Spring] @Valid를 사용한 유효성 검사는 어디서하는걸까?
유효성 검사가 무엇일까? 무엇인지 알겠는데, 회원가입할 때 로그인 할 때.. 쓰는 그거..가 아니라 정확히 어떻게 표현하면 좋을까? 유효성 검사는 데이터가 서버에서 잘 작동하기 위해서, 서버가 정한 조건에 맞는지 확인하는 것이다. 프론트엔드를 통해 요청 온 데이터의 유효성은 어디서 검사하는 것이 더 좋아? Controller? Service? Repository? 서버에서 잘 작동한다는 것은 비즈니스 로직을 수행하는데 문제가 없다는 것이다. 그럼 로직 수행 전에 문제가 없는지 확인해야 할 필요가 있지 않을까? 비즈니스 로직을 수행하는 곳이 서비스니까, 컨트롤러에서 들어온 요청에 따른 데이터가 올바른지 확인해주면 될 것 같다는 결론이 나왔다! 그럼 유효성 검사는 어떻게 해? 컨트롤러에서 유효성 검사를 해줄..
[JAVA] ISP vs 다형성
객체지향의 꽃은 다형성이라고 한다.그런데, 객체지향 프로그래밍의 SOLID원칙과 다형성이 계속 함께 갈 수 있을까? 객체지향 프로그래밍의 5가지 원칙인 SOLID원칙을 다시 생각해보자.하나의 클래스는 하나의 책임만 가지게 만들어, 여러 액터들에 의해 수정이 일어나지 않도록 해야한다는 단일 책임 원칙변경(수정)에는 닫혀있고, 확장에는 열려있도록 해야한다는 개방 폐쇄 원칙상속받은 자식 클래스를 업캐스팅해서 부모 클래스의 메서드로 사용해도, 원래의 의도대로 동작이 될 수 있어야 한다는 리스코프 치환 원칙인터페이스를 구현하여 객체를 만들기 위해서는 무조건 모든 메서드를 오버라이딩 해야하기 때문에, 최대한 목적과 용도에 맞도록 인터페이스를 분리하여 불필요한 구현을 하지 않도록하자는 인터페이스 분리 원칙어떤 클래스..
[Spring] Servlet이랑 DispatcherServlet
서블릿(Servlet)을 알아보고, 디스패처서블릿(DispatcherServlet)을 알아보겠습니다! init, doGet 과 메서드를 수행해서 요청을 받는게 서블릿인데, 정확히 서블릿이 뭐지?! 그럼 디스패처 서블릿은 뭐가 다르다는거지? 스프링에서 사용하는거니까 서블릿을 상속받긴 했을텐데,, 라는 궁금증을 가지고 공부해본 것을 공유해보고자 합니다! 웹은 HTML로 시작되었는데, HTML은 Hyper Text Markup Language의 약어로, 텍스트에 초능력이 있다라는 의미가 담겨있습니다. 왜 초능력이 있다고 표현한걸까요? 그 이유는 바로, 링크를 통해 다른 곳으로 연결되어 있기 때문입니다. 우리가 처음 사용했던 웹페이지는 모두 정적 페이지였습니다. 정적이란 뭘까요? 바로, 요청에 의해 페이지의 내..
[Spring] SpringContext와ApplicationContext는 같은걸까?!
보호되어 있는 글입니다.
sooyeon-kr
'분류 전체보기' 카테고리의 글 목록