본문 바로가기

전체 글288

HealthCheck는 뭔가 오늘은 HealthCheck가 뭔지 왜하는지에 대해서 적어보려고해요 이전 프로젝트에서 Docker + GitHub Action을 사용해서 무중단 CICD를 구축했었는데 구축 당시 HealthCheck라는 단계를 거쳤습니다. 그 당시에는 구현이 가장 급했기 때문에 코드 하나하나가 어떤 의미로 사용되는지 몰랐는데 문득 이걸 왜하지? 라는 생각이 들었습니다.그전에.. 왜 무중단 CICD를 구축했는지, 그리고 대략적인 툴 사용 이유와 개념 가볍게 짚고 넘어갈께요 무중단 CICD(Blue Green) 구축이유이전 프로젝트에서 수작업으로 배포를 진행을 했습니다. 그렇다 보니 코드의 수정이 생길 때마다 SSH을 통해 서버를 닫고 열어야했는데, 너무 잦은 수정으로 인해 배포 과정에서 시간을 너무 잡아먹드라구요그래서 C.. 2024. 6. 20.
[Spring] File과 JSON 데이터를 multipart/form-data로 받아오는 방법 목차 이글을 쓴 이유 Case 1의 경우에서 문제상황 Case 1의 문제 상황에서 파싱을 하면서 까지 해결하고 싶었던 이유 Case 2를 사용하게 된 이유 Case 2에서 아직도 고민이 되는 부분 Case 2를 사용한 이유 결론 안녕하세요 안녕주입니다. 이번 프로젝트를 하면서 POST 메소드에 Request Body로 MultiPartFile을 받는 경우가 많았습니다. MultiPartFile을 받을 경우 클라이언트 선생님들께서 FormData 헤더로 보내주셔야합니다. FormData란 HTML 폼 데이터를 나타냅니다. 이때 브라우저가 보내는 HTTP 메시지는 인코딩되고 Content-Type 속성은 multipart/form-data로 지정된 후 전송됩니다. 1️⃣ 이글을 쓴 이유 이글을 쓴 이유는 M.. 2024. 1. 19.
[프로그래머스] Lv.1 문자열 내 마음대로 정렬하기 - Python 안녕하세요... Python 영업당해서 코테 이제 Python으로 준비 하려고 하는데요,,, 진짜 충격적이게 좋네요 왜 이제 한거죠..? 파이썬 최고 1️⃣ 문제 설명 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다. 2️⃣ 제한 조건 strings는 길이 1 이상, 50이하인 배열입니다. strings의 원소는 소문자 알파벳으로 이루어져 있습니다. strings의 원소는 길이 1 이상, 100이하인 문자열입니다. 모든 strings의 원소의 길이는 n보다.. 2023. 10. 11.
[프로그래머스] Lv.1 비밀지도 - Java 1️⃣ 문제 설명 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다행히 지도 암호를 해독할 방법을 적어놓은 메모도 함께 발견했다. 지도는 한 변의 길이가 n인 정사각형 배열 형태로, 각 칸은 "공백"(" ") 또는 "벽"("#") 두 종류로 이루어져 있다. 전체 지도는 두 장의 지도를 겹쳐서 얻을 수 있다. 각각 "지도 1"과 "지도 2"라고 하자. 지도 1 또는 지도 2 중 어느 하나라도 벽인 부분은 전체 지도에서도 벽이다. 지도 1과 지도 2에서 모두 공백인 부분은 전체 지도에서도 공백이다. "지도 1"과 "지도 2"는 각각 정수 배열로 암호화되어 있다. 암호화된 배열.. 2023. 9. 26.
[프로그래머스] Lv.1 시저암호 - JAVA 1️⃣ 문제 설명 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀면 "a"가 됩니다. 문자열 s와 거리 n을 입력받아 s를 n만큼 민 암호문을 만드는 함수, solution을 완성해 보세요. 2️⃣ 제한 조건 공백은 아무리 밀어도 공백입니다. s는 알파벳 소문자, 대문자, 공백으로만 이루어져 있습니다. s의 길이는 8000이하입니다. n은 1 이상, 25이하인 자연수입니다. 3️⃣ 입출력 예 s n result "AB" 1 "BC" "z" 1 "a" "a B z" 4 "e F d" 🌱문제풀이 class Solution { public Stri.. 2023. 9. 22.
[프로그래머스] Lv.1 최소직사각형 - Java 1️⃣ 문제 설명 명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 디자인팀은 모든 명함의 가로 길이와 세로 길이를 조사했습니다. 아래 표는 4가지 명함의 가로 길이와 세로 길이를 나타냅니다. 명함 번호 가로 길이 세로 길이 1 60 50 2 30 70 3 60 30 4 80 40 가장 긴 가로 길이와 세로 길이가 각각 80, 70이기 때문에 80(가로) x 70(세로) 크기의 지갑을 만들면 모든 명함들을 수납할 수 있습니다. 하지만 2번 명함을 가로로 눕혀 수납한다면 80(가로) x 50(세로) 크기의 지갑으로 모든 명함들을 수납할 수 있습니다.. 2023. 9. 15.