전체 글 21

🙀 log4j 보안 취약점 발견 기념(?)으로 짧게 공부하기

log4j 보안 취약점이 나타난지 벌써 1달 정도가 넘었다. 엄청나게 큰 보안 이슈이다 보니까 빠르게 패치를 끝낸 상황일텐데, 그 상황을 지켜보면서, 내가 모르는게 너무 많아서 아주 짧게나마 공부해보고자 한다. 로그를 찍는다..! 근데 왜 라이브러리로? 로그를 찍을 때, 나는 System.out.println("######## 여기여기 ##########"); 이렇게.. 막 찍었다. 일단 로그를 찍는 라이브러리가 있는지 몰랐다! 그래서 System.out 을 이용하여 나의 로그를 여기저기에 남기고 다녔다. 그러다가 교육을 받으면서 다양한 라이브러리들이 존재함을 알게 되었다. System.out 으로 쓰는 대신에 사용하라고 했다. 근데 '왜?' 인지는 몰랐던 것 같다. '왜'일까? ~와 같은 다양한 이유들..

Backend/JAVA 2022.01.04

🤝새로운 목표

너무 오랜만에 블로그에 글을 남기게 되었당.. 부끄럽게도 취업 후 그동안 공부를 거의 안했다 🥲 분명 일을 하게 되면 다양한 걸 경험할 수 있기 때문에 지금부터라도 더 많은 걸 얻기 위해 공부를 시작해야 할 것 같다!!!!!! 짧은 목표를 세워보려고 한다! 2021년 마무리까지 얼마 남지 않았는데, 그동안 뭘 하면 좋을지 생각해보자! 남은 글 목록 해치우기 혼자서 공부하다가 멈춰버린 글이 9개나 있당.. 얼른 마무리해서 글을 올려버리자! 이외에도 정리하고 싶은 것들이 조금 있는데 가능하면 다 해버릴 수 있도록 하자!! 새로운 기술 스택을 천천히 공부 시작하기 그동안 k8s와 카프카, 스프링 클라우드, msa 등 정말 경험해보고 싶었지만 그러기 어려웠던 것들을 많이 경험했다!!!! 하지만 아직도 여전히 거..

계획 2021.11.14

😵‍💫토큰을 헤더에 담아 보냈는데 왜 안가!?

문제 프로젝트에서 JWT를 사용한 인증방식을 사용했다. 따라서, 어떤 요청의 헤더에는 'access_token', 'refresh_token' 이라는 key와 그 value값이 포함되어 있었다. 또한, FCM에 사용되는 토큰도 같은 형식으로 담겨 있었다. 하지만, 토큰이 있는지 확인이 필요한 요청들에 대해서 에러코드가 리턴되는 문제가 발생했다. 원인 SpringSecurity에서 permitall로 설정된 요청들에 대해서는 에러가 발생하지 않는데, hasRole로 설정되어 토큰 존재 여부가 필요한 요청들에 대해서는 토큰이 없다는 에러가 발생했다. 분명히 프론트엔드단에서 토큰을 담아서 axios 요청을 보냈는데, 자꾸 토큰이 없다는 문제가 나타난 것이다. 모든 요청들이 Nginx를 거쳐서 전달되었는데, N..

DevOps/Nginx 2021.09.21

😹 Nginx로 전달하는 Vue 페이지 하위 경로 접속시 나타나는 404오류 해결하기

문제 Nginx에서 Vue 프로젝트 빌드 파일을 전달하도록 환경을 구성했다. 메인페이지가 잘 나오는 것(http://example.com)을 확인하고 하위 경로도 잘 나오겠지라고 생각했다. 하지만 Vue 라우터에 등록한 하위 경로(http://example.com/home 등..)에 접속했더니 404 에러가 나타났다. 원인 Vue가 SPA이기 때문이다. Nginx는 정적 컨텐츠를 전달할 때, root 디렉터리에서 파일의 존재 여부를 찾는다. 'http://{IP주소}:{포트번호}/mainpage' 로 요청을 보내고 nginx 설정에서 root 디렉터리를 '/usr/share/nginx/html' 이라고 했을 때, 해당 root 경로 안에서 mainpage.html 이라는 파일을 찾아 전달하려고 한다는 말..

DevOps/Nginx 2021.09.20

🐰백엔드 프로젝트에 Jenkins를 이용해 CI를 적용하자

Vue 프로젝트에 CI를 적용했다. 그리고 이제 나머지 Spring Boot 프로젝트에 CI를 적용해보겠다. 이전 글 2021.08.22 - [AWS] - 🐮 Vue 프로젝트에 Jenkins로 CI를 적용해보자 에서 기반 작업을 다 진행했으니 매우 간단하게만 설명하겠다. 이번에도 역시 매우 아쉬운 부분이 있었고 이는 마지막에 작성하겠다. 사용한 기술 스택 - Spring Boot (gradle) - Docker - Jenkins - EC2 사전작업 1. 이전 글에서 진행한 Jenkins가 도커 컨테이너로 실행중이다. 2. 잘 실행되는 jar파일이 만들어지는지 확인한다. 어떻게 할건데? 원래는 이렇게 하고 싶었어요.. 아래 출처에 등록된 블로그 내용과 같이 다음과 같은 프로세스로 만들고 싶었다. 하지만 아..

AWS 2021.08.25

🐮 Vue 프로젝트에 Jenkins로 CI를 적용해보자

이번 프로젝트를 진행하면서 프론트와 백엔드 CI 과정을 다시 경험했다. 그리고 이전 프로젝트에서 적용하지 못해서 아쉬웠던 부분을 개선해서 적용하게 되었다! 하지만 이전에 좋았던 부분을 적용하지 못한 부분도 있다..ㅎㅎ 이건 보완해서 다시 추가해놓겠다. 목표는? Vue로 만들어진 프로젝트를 EC2 서버에 올려보자! 근데 이제 CI를 곁들여서 ... 사용한 기술 스택 Docker 컨테이너로 Jenkins를 실행하고, 거기서 Vue 프로젝트를 빌드해 나온 결과물 dist 폴더를 scp로 EC2 서버에 전송할 것이다. 그리고 그 디레터리를 Docker 컨테이너에 Nginx 위에서 정적 파일을 제공할 수 있도록 한다. gitlab에 특정 브랜치에 푸쉬하면 해당 프로세스가 진행될 것이다. - Vue - EC2 - ..

AWS 2021.08.22

🏖OSI 7계층

각 계층에서 잘 알려진 프로토콜이 무엇이 있는지 알고 넘어가기 OSI 7 계층이란? 네트워크 통신이 일어나는 과정을 7단계로 나누어 놓은 것 왜 만든거야 🙄 ? 통신 과정을 표준화해서 모든 네트워크 장치 간에 통신을 허용하도록 하기 위해서이다. OSI 계층 이 나오기 전, 독점 네트워킹 모델을 개발했다. 따라서 같은 공급업체가 제조한 기기 간에만 통신을 허용했다.😱 이러한 장벽을 허물기 위해, 같은 회사의 제품이어야하는 조건에 구애받지 않는 네트워킹 모델을 만들어서 같이 사용하기로 약속했다. 그래서 OSI, TCP/IP 모델이 나왔다. 왜 이렇게 몇 개의 레이어로 분리했을까? 계층의 모듈화가 빠른 파악을 돕는다. 계층을 분리해서 독립적인 역할을 하도록 했다. 역할의 분리로 인해 문제가 발생하면, 어떤 계..

CS/NW 2021.07.31

🚗웹 서버와 WAS

정적 페이지와 동적 페이지 정적 페이지 동적 페이지 (HTML, CSS, 이미지, JS) 저장된 그대로 사용자에게 전달되는 웹 페이지, 모든 상황에서 모든 사용자에게 동일한 정보를 표시 서버에 있는 데이터들을 스크립트에 의해 가공처리 후 생성되어 전달되는 웹 페이지, 시간/상황/요청 등에 따라 다른 정보 표시 작성자가 소수이고 콘텐츠 변화가 드문 사이트에 적합 예를 들어, 다양한 사용자의 사이트에서 정적 페이지로 서비스를 만든다면 사용자 마다 폴더를 갖고 그 안에 html이나 md 파일을 저장해서 해당하는 파일을 전달할 것 같다. (말도 안되는 일..!) 웹 서비스에서는 동적 컨텐츠와 정적 컨텐츠가 모두 필요하다! ├── 김하하 │ ├── 알고리즘 │ ├── 웹 │ └── 그냥 ├── 김크크 │ ├── ..

CS/WEB 2021.07.08

(추가중)😱맨날 마주치는 blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource

정말 프로젝트해볼 때 맨날 봤던 이슈다. 그치만 맨날 찾아본다. 그래서 이번엔 정리해본다^^.. 상황 8080번 포트에서 실행 중인 프론트가 8081번 포트에서 실행 중인 서버로 게시물을 작성해 POST 요청을 보냈다. 이슈분석 그리고 원인 예상은 했지만, 안나오길 바랬던 이슈가 나타났다. 바로 CORS 에러이다. 저번에는 S3에 저장된 이미지를 캔버스에서 활용할 때 비슷한 문제가 나타났다. 정말 많이 봤다. CORS가 무엇인지 잠시 살펴보면 좋을 것 같다. CORS가 뭔데? 해결방법 package com.web.backend.controller; import com.web.backend.dto.PostSaveRequestDto; import com.web.backend.dto.PostsResponseD..

Backend/SPRING 2021.07.01

EC2에서 npm run serve 했더니 나타났던 오류

나의 오류 다음과 같은 오류가 나왔다. 근데 원인은 잘 모르겠다. ec2가 너무 느려서 자꾸 껐다가 켰다가 이랬더니 모듈상 충돌이 난 것이 아닐까 하는 추측을 하고 있다. 해결 방법 다음 게시물을 통해 해결할 수 있었다. $ npm cache clean --force $ rm -rf node_modules (위치 잘 보고 삭제하기) $ rm -rf package-lock.json (위치 잘 보고 삭제하기) $ npm install https://github.com/nodejs/help/issues/2644#issuecomment-663993489 internal/modules/cjs/loader.js:983 throw err; ^ Could you help me with this code? · Issue..

AWS 2021.07.01