[Spring boot] 우리 팀 application.yml은 과연 안전할까? - 컨테이너로 인한 환경변수 노출 시나리오와 예방법
·
Back-End/Spring boot
🤔 계기많은 개발자들이 Spring Boot 프로젝트의 설정을 위해 application.yml 혹은 properties 파일을 사용한다.해당 파일에는 단순한 로그 설정부터, DB 접속 정보, 외부 API 키와 같은 민감한 정보를 포함한다. 대부분의 개발자들은 이러한 설정 파일에 포함된 정보가 민감하다는 것을 알기 때문에,외부에 노출되지 않도록 주의를 기울인다. GitHub 등 원격 저장소에서는 서브 모듈, .gitignore 등 여러 방법을 활용하여 설정 파일을 가렸지만, 많은 사람들이 컨테이너화 과정에서는 이러한 과정을 진행하지 않는다. 이 글에서는 컨테이너화로 인해 민감한 정보가 노출되는 상황과 예방법을 다룬다. 📃 본론컨테이너 이미지를 활용해서 어떻게 값을 알아낼 수 있을까?컨테이너 이미지를 ..
[공군 전문특기병] 교육훈련매체개발병(프로그램개발) 합격 후기
·
잡담/회고
🤔 계기대학원 - 석사 전문연을 포기하고 나온 직후,바로 입대에 대한 압박을 느꼈다.실제로 이런 알림톡을 받았을 때 많이 무서웠다. 친구들은 대부분 공군 전문기술병(전자계산)으로 복무를 했기 때문에나도 같은 길을 가려고 했지만, 다음 달 이전까지 TO가 나오지 않아서 전문특기병으로 지원을 시작했다.지원하려고 했던 특기병은 여러 개 있었지만 교육훈련매체개발병(프로그램개발)을 선택했다. 그 이유는이전에 웹디자인병이라는 보직이었기 때문에 지금 하는 개발과 가까워 보임다른 특기병들은 합격할 가능성이 보이긴 했지만 하고 싶은 느낌은 아님정도가 있다. 📃 본론먼저 배점은 다음과 같다. 대부분 기수당 1명을 뽑고,만약 TO가 남아있지 않다면 선발 자체를 하지 않는 경우도 있다. (매달 모집일정을 꼭 참고할 것..
2025년 1월 회고 - Last Dance
·
잡담/회고
📝 개요벌써 2025년의 한 달이 지났다. 원래는 신년 계획을 세우고 그 무리한 계획을 갈아치우는 그런 평범한 1월이지만,올해의 1월은 조금 많이 특별한 달로 기억될 것 같다. 내가 생각하는 이번 1월은 '라스트 댄스'의 준비와 시작이다.사회에 남아있을 수 있는 시간이 이젠 얼마 남지 않았기 때문이다. 🤔 LinkedIn으로 생존신고 한 사람새해에는 블로그 글을 자주 그리고 잘 쓰고 싶었다.그래서 'LinkedIn 포스트 + 티스토리 링크' 방식을 채택했다. 2024년 말에 고등학교, 대학교 지인들과 일촌 신청을 맺었고HR 분들의 일촌 신청을 받으며 이제는 글을 올리고 싶었다. 마땅한 주제라 생각된 것이 연간 회고라고 생각해서 12월 31일에 맞춰서 글을 올렸다.올리기 직전까지도 너무 감정적이지 않았..
[DevOps] 내 서비스의 Docker log가 서버를 죽일 뻔한 이야기
·
DevOps/Docker
🤔 계기사내 프로젝트를 진행하면서 Spring Scheduler로 구현한 기능을 테스트 하기 위해EC2 인스턴스에 컨테이너 형태로 배포를 진행하고 정상적으로 동작하는 지 확인했었다. 여러 번의 수정을 거치면서 기능적인 문제는 해결되었으나,가끔 로그가 남지 않고, 동작이 전혀 되지 않는 듯한 현상이 있었다. 이유는 디스크 용량 초과로 인한 문제였다.그런데 용량이 초과된 원인은 알지 못했었다. 하지만 최근에 문제의 근본적인 원인을 찾았다.이 부분을 많은 사람들이 놓칠 수 있을 것 같아 기록한다.📃 본론문제의 원인은 Docker의 로그 설정이었다.Docker의 기본 로그 설정은 json-file인데 이는 log-rotation을 지원하지 않는다.즉, 컨테이너가 run한 시점부터 현재까지의 로그가 보존되는 ..
[spring boot] JDK로 만든 당신의 컨테이너 이미지, 정말 JDK가 필요했나요?
·
Back-End/Spring boot
🤔 개요많은 개발자들이 Spring Boot 프로젝트 배포 시 불필요하게 JDK(Java Development Kit)를 사용하고 있다.개발 환경에서는 JDK가 필수적이지만,실제 배포 환경에서는 JRE(Java Runtime Environment)만으로도 충분하다는 점을 간과하고 있다. 이러한 방식으로 인해 낭비되는 리소스는 애플리케이션의 성능과 효율성에 영향을 미칠 수 있다. 예를 들자면, 무료 호스팅 사이트의 컨테이너 이미지 제한이 있는 경우 배포가 불가능한 경우가 있다.실제로 나는 Koyeb / Render라는 무료 호스팅 사이트에서 Spring boot 서버를 컨테이너 이미지 방식으로 배포하려고 했으나,배포 이후 용량이 무료 버전의 최대 용량인 512MB를 넘어서 배포가 불가능했었다. 해당 포스..
2024년 회고 - 하늘이 무너져도 솟아날 구멍은 있다
·
잡담/회고
나에게 2024년은?나에게 있어 2024년은 제목 그대로 하늘이 무너진 해였다.나의 문제일 수도, 불가항력일 수도 있겠지만 좋지 않은 일이 정말 많았다.2024년을 되돌아보며, 2025년을 계획하려고 한다.전조사건이 일어나기 전 일어나는 현상을 전조라고 한다.나 역시도 하늘이 무너지기 직전의 전조 증상이 있었다.이것들은 내가 연초 ~ 1학기 기간 동안 담당한 일들이다.개발동아리 회장학부연구생 (영문논문 작업, 연구과제)수업조교 (과제 채점 및 피드백)졸업작품 (백엔드 개발)여러 일을 하는 것은 쉽지 않지만, 그래도 버틸 수 있었다.그럴만한 여유가 아직은 남아있었다. 아직까지는...하늘이 무너지다하지만, 각각의 일에서 사건이 발생한다.1. 연구실과 동아리 그리고 졸업 (1월 초 ~ 4월 말)1월에는 연구자..
기호는 있을 수 있지만, 기조로 삼지는 말자
·
잡담
회사에서 있었던 가벼운 이야기다.대표님께서 나에게 웹 개발(React 등)을 혹시 해볼 생각이 있냐고 여쭤보셨다.(현재 백엔드 개발자로 프로젝트 진행 중) 나는 시간만 된다면 가능하다고 했다.이전부터 해당 분야에 대한 관심이 있었다고 했지만, 사실은 혼자서 다 할 수 있으면 하는 마음이 앞섰다.(다행히 웹 개발을 제대로 담당하지는 않았다. 그냥 해본 말씀이었다. 다행이었다) 그러자 대표님께서 말씀하셨다.너 같은 경우도 있는데 요즘은 그렇지 않은 경우가 생각보다 많은 것 같다. 나도 동의한다.각자가 하는 분야에 대한 프라이드와 경험이 있는데, 그 길을 선회하기란 쉽지 않다. 다시 배우는 데 필요한 시간과 새로운 분야에 대한 적성의 불확실성, 그로 인한 리스크가 크다. 하지만 나는 제목과 같은 생각을 한다...
2024년 11월 회고
·
잡담/회고
📝 개요벌써 2024년도 마지막 달을 맞이했다.몇 번째 선언하는 지는 모르겠지만, 부지런한 포스팅을 위한 시작으로 11월 회고를 쓰기로 결심했다.🤔 실 배포 그리고...10월 말 부터 3번 동안 개발한 서버를 실제로 배포했다.나는 회사에서 문제가 생기면 즉시 해결하고, 대표님께서 설치가 필요한 회사에서 작업을 진행하셨다.이때가 회사에서 가장 힘들었던 시간 중 하나였는데, 전혀 예상치 못한 오류들이 난무했었기 때문이다. 발생한 오류들은 이런 것들이었다.EC2 인스턴스가 Docker를 설치 안 함 (레드햇은 Docker 설치 시 Podman이 설치됨)Docker 네트워크 설정이 제대로 안 됨디렉토리 접근 권한이 없음스크립트 오타...그 외에도 많은 오류들이 있었는데, 참 머리가 아팠다.오류를 현장에서 마..
Q. @SpringBootApplication 어노테이션에 대해 설명해주세요
·
면접 질문/Spring boot
🤚 답변A. @SpringBootConfiguration, @EnableAutoConfiguration, @ComponentsScan으로 이루어져 있으며,이는 각각 Spring Boot의 Configuration을 자동으로 찾아주고, (@SpringBootConfiguration)자동 구성을 활성화하여 사용할 가능성이 있는 빈을 자동으로 생성하고, (@EnableAutoConfiguration)@Component (streotype 어노테이션 포함) 어노테이션이 포함된 클래스를 자동으로 스캔하여 빈으로 등록합니다.(@ComponentsScan)📚 레퍼런스https://galid1.tistory.com/510https://docs.spring.io/spring-boot/api/java/org/sprin..
학부연구생 회고 (학부연구생을 생각하는 분들께)
·
잡담/회고
시작내 학부연구생 생활의 시작은 2022년 10월 (대학교 2학년 2학기) 였다.2021년에 입학해서 비대면 캠퍼스 생활로 인해 대학에 대한 생각이 크게 없었던 내가 이러한 선택을 한 계기는 크게 두 가지였다고 생각한다.좋은 교수님을 만나다나는 컴퓨터공학부에 입학하였으나, 이전부터 개발을 했던 경험이 있어 비대면 생활 + 이미 아는 내용이라는 점이 대학에 대한 의미를 크게 생각하지 않게 했다고 생각했다. 그렇게 1년을 보내고 2022년이 되어 2학년 전공필수 수업으로 자료구조 수업을 듣게 되었다.아는 내용이라 대충 듣고 넘겼던 적도 솔직히 있었지만, 성적은 그렇지 못했던 것 같다. 중간고사를 봤는데 96점 만점에 39점...이라는 점수를 받았다.물론, 석차만으로 따지면 나쁘지 않은 석차이긴 했지만 이건 ..