본문 바로가기

프로그래밍49

Java 에서 다운로드받은 이미지의 타입 유추하기 개요 팀에서 Feign을 통해 이미지 다운로더를 구현해 사용하고 있다. 그런데 해당 클래스에 대해, 다운받은 이미지의 형식을 검증해달라는 요구사항이 추가되었다. 팀에서 요구한 사항은 png, jpg, bmp 에 대해 다운로드를 허용하고 이외엔 차단하는 것인데, 이를 구현하면서 겪은 문제를 간단히 공유해본다. 요구사항 png(png, apng), jpeg(jpg, jpeg), bmp 를 제외한 다른 파일 다운로드 금지 기존 DTO에 fileType이라는 필드를 추가로 전달 해당 클라이언트를 사용하는 서비스에 validation 로직 추가 이제 위의 요구사항 충족을 위해, 이미지 파일의 타입을 알아내고자 한다. 이미지 파일 타입 유추 파일의 타입을 유추하는 방법은 크게 다음과 같다. header 정보 참조 .. 2024. 4. 12.
[Vue.js] QR code 만들기 개요 최근에 사내 어드민 페이지를 리뉴얼하면서, QR 코드에 링크를 담아 화면에 띄워주는 기능을 구현하였다. 이 과정에서 QR코드 로딩 방식을 교체하게 되었는데, 관련된 내용을 공유하고자 한다. 외부 서비스 이용 QR 코드를 만드는 방법에 대해, 우리는 두 가지를 생각할 수 있다. 별도의 웹서버 등에서 이미지를 생성하고, 해당 이미지의 링크를 받아와 화면에 표시 프론트엔드 페이지에서 직접 그려서 표시 이 중 첫번째 방법에 대해 먼저 알아보자. Google Chart API 구글에서는 화면에 차트를 그리기 위한 Chart API 를 공개하고 있다. 해당 API 문서를 보면, API 서버에 요청을 보내 해당 이미지를 바로 사용할 수 있음을 알 수 있다. 그런데 왜 Chart API를 여기서 언급하고 있을까?.. 2024. 1. 11.
Kotlin 에서 Slf4j를 통해 로깅하기 개요 8. 로그 파일 만들기, 인터셉터 구현하기 코드 확인을 위해, 관련 PR 링크를 첨부한다. #5 로깅 구현 및 로깅을 위한 인터셉터 구현하기 by include42 · Pull Request #10 · include42/spring-books-diary Resolved: #5 실수로 Develop 브랜치에 커밋해 버려서, Rev kafcamus.tistory.com 이전에 위 글을 통해, java 기반의 spring 프로젝트에서 어떻게 로깅을 하는지에 대해 정리해 두었다. 다만 kotlin에서는 lombok 사용에 불편함이 있어, 다른 방식으로 로깅을 수행해야 한다. 이때 어떻게 하면 좋은지 간단하게 정리해 보고자 한다. 팩토리 메소드 아래와 같은 코드를 전역 범위에서 쓸 수 있도록 만들어 준다. .. 2024. 1. 1.
[Jenkins] cron시 timezone 추가하기 본 글은 아래의 목적을 위해 작성되었다. Jenkins Pipeline에 대해 간단히 알아본다. Jenkins Pipeline의 cron 옵션에 timezone을 추가한다. Jenkinsfile의 cron 옵션에 timezone을 추가한다. Jenkins pipeline 젠킨스 파이프라인이 무엇일까? 젠킨스 파이프라인은 cd(지속적 전달) 파이프라인을 젠킨스에 구현하고 통합하는 것을 지원하는 플러그인 모음이다. 출처: https://www.jenkins.io/doc/book/pipeline/ 젠킨스 파이프라인을 통해, 다양한 목적을 수행할 수 있다. 프로젝트의 자동화된 CI/CD 환경 구축 자동화된 배치 프로세스 구축 나 역시 Jenkins를 통해 지속적 통합을 위한 테스트 수행, 배포 프로세스 수행,.. 2022. 7. 12.
개발자의 道 개발자로 살아가는 내게 지침이 될 道가 있을까. 고전 읽기 중 갑자기 든 생각. 마침 대학大學을 읽고 있던 참이라, 심심해서 대학大學 경經 1장을 고쳐 잡설을 써봤다. 단어만 조금 고쳤는데 뜻이 통하는 것이 신기하다. 경지에 다다르면 다 통한다더니. 덧붙여, 가벼운 유머글로 봐주시길.. 개발자의 대학大學 경經 1장 개발의 도는 자신의 밝은 코드를 밝히는 것에 있고, 사용자를 자기 몸처럼 아끼는 것에 있으며, 지극히 좋은 코드의 경지에 머무르는 것에 있다. 마땅히 머물러야 할 좋은 코드의 경지를 안 뒤에야 코드가 향할 방향이 정해지고, 코드가 향할 방향이 정해진 뒤에야 코드가 흔들리지 않을 수 있으며, 코드가 흔들리지 않은 뒤에야 어떤 상황에서나 편안할 수 있고, 어떤 상황에서나 편안하게 된 뒤에야 코딩을.. 2022. 4. 20.
[Tips] 반복되는 값을 상수로 선언하자. 심심해서 적어보는 시리즈. 트러블 슈팅 끝에 얻은 코딩 팁들을 앞으로 Tips 시리즈로 소개해드리려고 한다. 이 글은 레퍼런스 부담 없이, 간략하게만 쓸 생각이다. 요약 함수 호출 횟수를 줄이면 성능이 향상된다. 반복되는 값은 상수로 선언하는 것이 좋다. 반복적인 함수 호출은 비용이다 오늘의 첫번째는, 함수 호출에 대한 이야기이다. 우리가 코딩을 하다보면 종종 잊는 사실이 있는데, 함수를 호출하는 것은 생각보다 꽤 큰 비용이 드는 작업이라는 사실이 그것이다. 물론 알고리즘 문제풀이나 빅데이터 가공과 같은 극단적인 상황이 아니라면 충분히 감수할 수 있지만, 그래도 확실하게 티가 나는 부분들이 존재한다. 함수의 반복 호출 for(int i = 0; i < getSize(); i++) { // 연산... } .. 2022. 4. 11.
반응형