일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스프링 부트
- dfs
- 해시맵
- 구름LEVEL
- HTTP
- 스프링부트
- 배열
- 웹
- 이직
- 스택
- Java
- 개발자
- 스프링
- django framework
- 자료구조
- spring
- 인텔리제이
- spring boot
- 카카오
- 주니어
- 스타트업
- 코딩테스트
- 구현
- HashMap
- 문자열
- bfs
- IntelliJ
- 백엔드
- 해결
- 프로그래머스
- Today
- Total
목록전체보기 (115)
마이의 개발 블로그
배경현재 개발 중인 솔루션은 단일 프로젝트가 아닌 각기 다른 언어와 프레임워크로 구성되어있습니다. 그러다보니 각 프로젝트별로 하나씩 도커 이미지가 생성되어 솔루션을 설치할 때는 복수의 도커 이미지들을 도커 컴포즈(docker compose)로 관리하게 됩니다. 솔루션을 설치하고 운영하는 과정에서 주로 사용하는 도커와 도커 컴포즈 명령어들을 나열해보겠습니다.도커 명령어 모음명령어기능비고docker login도커 허브 계정에 로그인 docker pull 원격 저장소 이미지 다운로드프라이빗 저장소일 때 로그인 필요docker --version버전 확인 docker images현재 PC에 존재하는 이미지 목록 보기 docker image tag [기존 이미지명] [새 이미지명]이미지명 변경 docker save..
배경솔루션 개발 도중 XSS 취약점이 발견되어 이를 어떤 방식으로 해결할지 탐색하고 팀과 의견을 나누는 시간이 필요했습니다. XSS에는 여러 가지 방식이 있지만 특히 웹에서 텍스트 에디터를 통해 사용자가 게시글 본문을 입력하는 등 일반 유저가 HTML을 조작할 수 있는 경우에 해당 문제가 종종 보고되는 것을 발견할 수 있습니다. 보안유지를 위해 더 자세하게 기술할 수는 없지만 저의 경우도 비슷한 맥락의 문제가 발견되어 이를 해결하는 과정에서 알게된 내용들을 작성해보고자 합니다.크로스 사이트 스크립팅(Cross Site Scripting, XSS)이란?XSS는 관리자가 아닌 유저가 클라이언트측에 악의적인 스크립트를 삽입하여 이상 동작을 유발시키는 행위로 웹 어플리케이션의 서버 - 클라이언트 구조에서 주로 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/IvBIq/btsGiplTj80/2E893ONgshx4wh3lUU7Ilk/img.png)
배경 이미 암호화된 문자열로 발급된 키값을 환경변수 등에서 가져와 프로그램에서 사용하는 경우 문자열을 기준으로 작업할 수 있도록 코드의 변경이 필요합니다. 또한 시크릿 키의 경우에도 암호화 되지 않은 문자열을 기준으로 한 번 더 암호화하는 과정을 거쳐야 하는데 보통 제시되는 예시들은 시크릿 키를 별도로 암호화하여 발급한 후에 그 암호문을 그대로 사용하는 형태로 동작하는 것이 대부분이었습니다. 그래서 약간의 수정을 거쳐 현재 프로젝트에 맞는 형태로 input과 output을 가공하여 사용하는 클래스를 작성했습니다. 이 예제는 AES 암호화 알고리즘을 사용하여 1) 암호화(encrypt), 2) 복호화(decrypt) 동작을 수행하는 코드입니다. 두 동작 모두 인수로 암호화되지 않은 String 타입 시크릿..
배경 소프트웨어가 설치되는 환경에 따라 하나의 서버에 접속한 후 그 서버와 연결된 다른 서버에 접속해야하는 경우가 있습니다. 예를 들어 web, WAS, DB서버들로 구성된 환경에서 web은 외부 IP로 접근이 가능하지만 WAS, DB는 web을 통해서만 접근이 가능한 경우가 이에 해당합니다. 이럴 때 사용할 수 있는 방법들을 제가 겪었던 문제 상황들과 함께 제시해보겠습니다. 문제 상황 1. web서버로만 접근이 가능한 WAS 서버에 접속하여 작업을 수행해야할 때 (ssh 이용) 1) 터미널을 통해 web 서버에 접속합니다. 2) 접속된 web 서버의 터미널에서 ssh 명령어를 이용해 WAS에 접속합니다. - 명령어 형식: ssh @ -p - 예를들어 1.2.3.4:1234 에 user라는 이름으로 접속..
배경 스프링과 FastAPI를 각각 사용하여 서버를 개발 하던 중 두 서버 모두 로그를 파일로 저장하는 기능이 필요했습니다. 두 프레임워크 모두 로깅은 기본적으로 제공하고 있었는데 스프링에서는 간단한 설정만으로 파일 크기와 시간(일별 기록)을 모두 고려한 파일 롤링 정책 적용이 가능했지만, 파이썬에는 두 경우에 각각 대응되는 파일 핸들러들을 분리하여 제공하고 있습니다. 파이썬에서도 스프링에서처럼 파일 크기와 시간(일별 기록) 둘 다를 고려한 핸들러가 필요하여 해당 내용을 탐색했습니다. 문제 파이썬의 logging 라이브러리는 TimedRotatingFileHandler와 RotatingFileHandler를 제공합니다. 전자는 이름 그대로 시간을 기준으로 롤링 정책을 적용하는 핸들러이고, 후자는 파일의 ..