본문 바로가기

삽질일기8

[일기] 더 좋은 코드란 무엇일까? 한 달 전쯤인가, spring boot로 요구사항에 맞는 비즈니스 로직을 개발하면서 Exception 처리의 효율을 높이기 위해 공부한 내용을 코드에 반영 후 커밋했었다. 아래는 그 당시 공부했던 내용이다. https://ksh-dev.tistory.com/27 java - Exception과 logging이 성능에 미치는 영향 1. 서론 개인 프로젝트는 사용자가 많은 경우가 드물기 때문에 부하가 있을 때 성능적으로 어떤 문제가 발생할지 경험하기 어렵고 따라서 고민도 덜 하게 되는 것 같다. 반면, 회사에서 개발을 ksh-dev.tistory.com 간단히 정리하면, 특정 상황에서 분기하기 위한 목적으로 Exception을 사용한다면, fillInStackTrace()를 Override 하여 stack .. 2021. 12. 3.
HTTP multipart/form-data에 jwt token 포함 시켜 전송하기 1. 서론 일반적으로, api 서버는 api를 모든 사용자에게 노출시키지 않는다. 인증된 사용자를 기본으로 인가된 api만 노출시킨다.(그 수단으로 세션이나 토큰을 주로 사용한다.) 사내에서 개발되는 api 서버는 로그인된 사용자에 한에서 jwt token을 발급하고, 사용자는 매 요청마다 헤더에 token을 포함시킨다. 그럼, 서버에선 token의 유효성, 권한 등을 확인해 유효한 사용자에 대해서만 api에 접근할 수 있도록 한다. 그런데, 특정 api의 경우 ui에서 요청 시 헤더 값을 커스텀하게 세팅하지 못하는 경우가 발생했다. (파일 다운로드 api의 경우, 단순 ajax를 사용한 비동기 통신으로 서버에 요청하게 되면 파일이 모두 다운로드될 때까지 아무것도 표시되지 않는다. form.sumit 방.. 2021. 11. 3.
AWS - 외부 PC에서 VPN으로 사내 망 접속 시 클라우드 서버 접속 안되는 문제 1. 문제 상황 사내에 on-premise 형태로 구동 중이던 서버 하나를 클라우드(AWS)에 올리는 작업을 최근에 진행 AWS 보안 그룹 설정에 사내 대표 ip에 대한 인바운드 트래픽을 허용하도록 설정 사내에서 클라우드 서버와의 통신은 이상 없음을 확인 외근자가 VPN으로 사내망 연결 후 클라우드 서버 접속 안 되는 문제가 발생 외부 pc에서 vpn연결 후 사내 서버에 연결하게 되면 vpn을 통해 연결이 된다. 하지만 클라우드 서버에 접속하는 경우 [외부 pc] [클라우드 서버]의 연결은 순수 인터넷을 통해 이루어진다. 즉, vpn을 거치지 않는다. 2. 해결 과정 별도의 프락시 서버를 만들어 사내에서 구동시키고 해당 프록시 서버에서 클라우드 서버로 포워딩시킨다. 그 후, 외부 pc가 바라보는 클라우드.. 2021. 10. 22.
Mybatis 환경에서 lombok 어노테이션 남용이 부른 참사 1. 서론 회사에서 Mybatis를 사용해 게시글에 대한 페이징 처리를 구현하던 중, Mybatis mapper에서 디비로 요청한 쿼리의 결과가 Entity 객체에 제대로 메핑 되지 않는 문제를 겪었다. 2. 본론 문제를 설명하기 앞서 우선 내가 만든 Entity 객체와 mybatis mapper가 어떻게 구현되어 있었는지 보면 아래와 같다. @Data @Builder public class FileInfoEntity { private String deviceCode; private String userId; private String deptCode; private String reqUserId; private String fileName; private String filePath; private L.. 2021. 10. 18.