본문 바로가기

전체 글

[Spring Boot] Websocket 통신 시 JWT 인증 (interceptor 적용) Interceptor 적용을 위해 configureClientInboundChannel 메서드를 재정의 @Configuration @EnableWebSocketMessageBroker class WebsocketConfig( private val env: Environment ) : WebSocketMessageBrokerConfigurer { //... /** interceptor 적용 **/ override fun configureClientInboundChannel(registration: ChannelRegistration) { registration.interceptors(object : ChannelInterceptor { override fun preSend(message: Message, .. 더보기
[Spring Boot] 소켓 통신을 위한 Websocket 서버 구성 스프링 부트를 사용한 예제 애플리케이션을 AWS를 통해 모노리식에서 MSA로 MSA에서 다시 컨테이너 오케스트레이션으로 개선해나가는 과정을 모두 담은 강의를 출시하게 되었습니다. 강의 과정에서 15개 이상의 서비스를 사용하게 됩니다. 그래서 클라우드 개발자가 아닌 개발자, 학생 분들도 AWS의 폭넓은 지식을 쉽고 빠르게 습득할 수 있는 기회가 될 수 있다고 생각합니다! 배너를 누르면 강의로 이동됩니다. 블로그를 통해 구매하시는 분들에게만 10%할인 쿠폰을 증정중입니다. 꼭 아래 쿠폰번호를 입력해 주세요! 16861-259843d6c2d7 spring boot websocket 종속성 추가 implementation("org.springframework.boot:spring-boot-starter-webs.. 더보기
[Android] Retrofit 요청 시 url 인코딩 안 되게 하기 문제 retrofit으로 RestAPI 요청 작업 시 url에 서비스키(accessKey)가 들어가야하는 경우가 종종 있는데 이 때, 서비스키에 = 또는 + 와 같이 인코딩 시 문자가 바뀌어 요청이 되어 에러를 발생하게 된다. reftofit @Query annotation에 다음과 같이 encoded = true 옵션으로 해결이 된다는 내용의 글들이 많이 보인다. @Query(value = "value", encoded = true) 하지만 해당 방법으로 요청을 보내도 url은 인코딩되어 전달이 되고, 결과 역시 에러를 발생시킨다. 정확한 원인은 찾아봐도 잘 나오지 않지만 아마 okhttp에 설정을 따로 안 해줘서 그런거같다. 해결 해결 방법은 okHttp의 인터셉터에서 url의 인코딩된 부분을 rep.. 더보기
[Jenkins] Docker Jenkins로 Spring Boot 빌드 및 배포 - 2 (파이프라인 작성 및 빌드 테스트) 시스템 환경 jenkins 인스턴스 (ec2 ubuntu 20.04) server 인스턴스 (ec2 ubuntu 20.04) 개발 데스크탑 (mac 12.0.1) 구현할 파이프라인 구조 개발 데스크탑에서 코드 작성 후 github push github에서 webhook -> jenkins instance jenkins 파이프라인실행 git clone gradle build docker build docker image push jenkins 인스턴스에서 server 인스턴스로 ssh 접속 server 인스턴스 docker image pull server 인스턴스 docker image run server 인스턴스 기존에 같은 서비스 존재 시 기존 서비스 종료 jenkins에서 메일 또는 슬랙으로 결과 전.. 더보기
[Jenkins] Docker Jenkins로 Spring Boot 빌드 및 배포 - 1 (Jenkins 권한 및 플러그인 설정) 시스템 환경 jenkins 인스턴스 (ec2 ubuntu 20.04) server 인스턴스 (ec2 ubuntu 20.04) 개발 데스크탑 (mac 12.0.1) 구현할 파이프라인 구조 개발 데스크탑에서 코드 작성 후 github push github에서 webhook -> jenkins instance jenkins 파이프라인실행 git clone gradle build docker build docker image push jenkins 인스턴스에서 server 인스턴스로 ssh 접속 server 인스턴스 docker image pull server 인스턴스 docker image run server 인스턴스 기존에 같은 서비스 존재 시 기존 서비스 종료 jenkins에서 메일 또는 슬랙으로 결과 전.. 더보기
[Docker] 도커 컨테이너에서 도커 이미지 빌드 (with jenkins) 'AWS로 구현하는 MAS와 컨테이너 오캐스트레이션' 강의를블로그를 통해 구매하시는 분들에게만 10%할인 중입니다.이미지를 클릭하면 강의로 이동할 수 있습니다.아래 쿠폰번호를 입력해 주세요!16861-259843d6c2d7   발단docker 환경에서 jenkins를 이용하여 pipeline구축 시 docker 이미지를 빌드해야하는 경우가 생긴다.이때 jenkins를 docker로 실행시키지 않는다면 권한 부여만으로 해결이 가능하지만jenkins를 docker이미지로 구동하면 jenkins컨테이너에서 host의 docker를 사용하여 빌드를 해야한다.이때 해결방법으로 jenkins컨테이너에 내에 다른 docker 데몬을 실행하는 것 인데 이 방법은 docker에서 권장하지 않는다.해결 방법해결방법은 ho.. 더보기
SSH 간편하게 접속하기 (with EC2) 문제 EC2를 사용하게 된다면 SSH접속을 자주 하게 될것이다. 그런데 여기서 SSH명령어의 길이가 길어 외우는건 불가능하여 매번 복붙 또는 history에서 가져와야하는데, 이 일도 어떤 경우에선 번거러운 일이 될 수 있다. (ec2 접속해서 ip를 찾아보거나 pem 파일 경로 를 찾거나 등등) ssh -i [pem file] [host name]@[ip address] 그래서 SSH 접속을 아주 간단하게 할 수 있는 방법을 적용해 보자. 해결 방법 * pem 파일 권한이 있는 user로 진행해야함. 1. 먼저 pem 파일의 위치를 ~/.ssh 디렉토리로 옮겨준다. (안 옮기고 현재 위치 그래도 해도 무관) mv [pem file] ~/.ssh 2. ~/.ssh 디렉토리에 config 파일 작성 vim.. 더보기
[Jenkins] Jenkins란? Jenkins를 사용하는 이유 및 Declarative pipeline 문법 Jenkins Jenkins는 소프트웨어 구축, 테스트, 전달 및 배포와 관련된 모든 종류의 작업을 자동화하는데 사용할 수 있는 오픈 소스 자동화 서버이다. Jenkins는 시스템 패키지, Docker 또는 JRE(Java Runtime Environment)가 설치된 모든 환경에서 실행할 수 있다. 이러한 자동화 시스템은 다양한 플러그인들을 조합하여 일을 처리하는 Pipeline을 통해 CI/CD Pipeline을 구축할 수 있다. 개발자들이 코드 작성 외에 귀찮은 테스트, 빌드, 배포 등의 과정을 Jenkins에 구축해놓으면 대신 이 일들을 처리해 준다. (자동화) 쉽게 말해 그림에서 보이는것과 같이 노예이다. 대표적인 Plugin 대표적인 Plgin으로는 Pipeline, Gradle Plugin,.. 더보기