본문 바로가기

개발일기장

(34)
사이드 프로젝트 일기 2 - 업무 시스템과 전자 결재 연동하기 회사에서 업무를 수행하다보면 요청자 측에 결재를 요청할 일이 있다. 예를 들어  김대리는 그룹웨어 신규 계정을 생성하기 위해 업무 요청 서비스를 통해 계정 담당자에게 계정 생성을 요청한다.계정 담당자는 내용을 검토하고 계정 생성 전 김대리에게 전자 결재를 요청한다.김대리는 박부장에게 상신을 요청하고 박부장은 최종 승인을 내린다.이후 계정 담당자는 계정 생성을 진행한다. 이러한 업무 프로세스가 진행되려면 업무 요청 서비스/전자 결재 연동이 필요하다.  몇 달 동안 고민해서 만든김에 1번, 3번 과정 구현 내용을 소개해보려고 합니다. 1. 메시징 서비스를 통해 결재 요청(결재 문서 생성) 아래와 같이 업무요청 기능으로 특정 부서에 업무 요청 양식을 보내고 요청 클릭  플랫폼개발팀 부서의 소속 인원으로 접속해..
스프링 부트 환경에서 도커를 찍먹해보자 feat. war 파일 알아갈 수 있는 정보- war 파일 Dockerfile 구성 방법  스프링 부트 환경에서 Dockerfile 을 이용하면 비교적 간단하게 컨테이너를 구성할 수 있다. 우선 프로젝트 루트 아래 Dockerfile 을 을 생성하자. Dockerfile 는 아래와 같이 구성되어 있다. 각 행의 맨 앞에는 Dockerfile 에서 사용할 수 있는 키워드가 나온다. 자세한 내용은 다음 링크를 참고 바람 (https://docs.docker.com/reference/dockerfile/)아래 도커 파일은 스프링 부트에서 일반적으로 사용하는 내장 톰캣에 맞춰진 명령이 아니다.war 파일을 웹에 띄울 것이기 때문에 톰캣 이미지를 불러온다. 내장 톰캣을 사용한다면 (https://spring.io/guides/gs/sp..
사이드 프로젝트 일기 1 - 비동기 처리 시, 영속성 컨텍스트 주의 사항 및 이벤트 리스너 처리 글의 결론1. 영속성 컨텍스트는 스레드별로 관리된다. 따라서 비동기 처리한다면 영속성 컨텍스트가 상이하거나 초기화 되지 않는 것을 고려해야 한다. 2. 이벤트 리스너는 이벤트를 발행한다고 바로 실행되는 것이 아니다.  전자 결재, 그룹웨어 사이드 프로젝트를 진행중입니다. 오늘은 결재 문서에서 아래 상신 버튼을 눌렀을 때 발생하는 서버 통신에서성능 최적화를 위해 비동기 처리를 하면서 겪었던 내용을 담았습니다.  클라이언트(사용자)가 상신 버튼을 누르면 아래와 같은 흐름으로 통신합니다.참고로 전자 결재, GW 포탈은 서로 다른 서버입니다.   이를 가장 간단하게 구현하는 방법은 전자 결재 서버에서 동기적으로 처리하는 것이다. 즉 아래 과정을 하나의 스레드, 트랜잭션으로 묶는 것이다. 1. 상신 API 호출2..
vscode 단축키 설정 최근 FE쪽 공부를 하면서 vscode 사용하는 일이 많아졌다. 인텔리제이를 주로 사용하다보니 vscode 와 단축키 동기화가 되어 있지 않아 개발에 힘든 부분이 있다. 찾아보니 인텔리제이 IDE에 맞춰 키바인딩을 해주는 익스텐션이 있기는 한데 딱히 만족스럽진 못하다.. ㅎㅎ 내가 잘 사용하지 못해서 그런걸지도... 그래도 우선 설치. 이제 주로 사용하는 단축키 위주로 기록을 해두겠다. 1. 보기: 그룹에서 최근에 사용한 편집기 빨리 열기 개발을 하다보면 컴포넌트를 옴겨 다닐일이 많다. Ctrl + E 로 변경 2. 다음 일치 항목 찾기에 선택 항목 추가 쉽게 말해 동일한 단어를 드래그 해주는 기능이다. 이것도 생각보다 많이 사용한다. 나는 Ctrl + D 로 변경하도록 하겠다. 3. 변수 자동완성 자바..
백엔드 서적, 인강 리뷰 1 경제학을 배우던 대학 시절에는 참 전공 서적에 돈쓰는게 아깝게 느껴지곤 했다. 그렇다고 경제학 자체에 흥미가 없었던 것도 아니었고 인생에 아무짝에 쓸모 없다고 생각하지도 않는다. 특히나 백승관 교수님의 거시 경제학은 내 인생의 2번 째 터닝포인트이기도 하다. 이 얘기는 추후 다뤄보도록 하겠다. 상대적으로 백엔드 개발자가 되기 위해 구매했던 책들은 만족도가 높았다. 단순하다. 실용적이기 때문이다. 그 중에서도 오늘은 만족도가 높았던 책, 인강들을 간단히 소개해보려고 한다. 소개할 책, 인강 리스트는 다음과 같고 시간이 없는 사람은 볼드체만 봐도 된다. 볼드체는 해당 컨텐츠를 통해 얻을 수 있는 것들이다. 소개할 리스트 1. 인프런 - 김영한 스프링 핵심 원리 기본 편, MVC 1, 2편 2. SQL 첫걸음..
Postman 조금 더 잘 사용하기 - 반복적이고 랜덤하게 API 호출하기 오랜만에 여유가 되서 글을 써보려고 한다. 기술은 한 번 제대로 공부해두면 해당 기술의 핵심 컨셉은 잊혀지는데 오래가지만 세세한 부분은 잊혀지기 마련인 것 같다. 그래서 실무에서 사용하지 않는 JPA를 다시 공부하게 되었다. 2주를 계획했지만 한달이 넘어버린건 함정이다. 참고로 요즘은 스프링 배치를 공부하고 있다. 잡설은 여기까지만 하겠다 :) 포스트맨이 어떤 도구인지는 알테니 설명은 생략하도록 하겠다. 오늘 소개할 내용은 2가지이다. 1. run collection 2. pre-request script 나는 이 두 기능을 조합해서 수동으로 생성하기 다소 귀찮은 레코드를 생성하는데 사용하고 있다. 물론 여유가 된다면 이것보다 효율적인 방법이 존재할수도 있지만 이것도 나름 나쁘지 않은 선택지라고 본다. ..
근황 + 멀티 모듈 이야기 오랜만에 블로그를 쓰니 근황을 좀 이야기해보려고 한다. 퇴근 후에 공부를 한다는건 생각보다 힘들었다. 집에 칼같이 와도 7시 30분 정도? 집에 와서 씻고 밥먹고 조금 쉬면 10시가 훌쩍 넘는다. 그러다가 좀 더 쉬면 자는거고... zz 아니면 가볍게 2시간 정도 공부를 한다. 생각보다 집중력이 좋지 않았다. 그 기간동안에는 Linux, SQL 이나 회사에서 사용하는 기술 스택으로 아주 자그마한 프로젝트를 만들어보았다. 하루도 빠짐없이 공부한건 맞지만.. 많이는 못해서 나에게 미안하네 ㅎㅎ 주말에는 그동안에 만나지 못했던 친구들을 만났다. 앞으로 몇 주 정도는 친구를 더 만날 것 같긴 하다..ㅎ 이제 본격적으로 멀티 모듈 이야기로 들어가보겠다. 우선 단일 모듈에서 멀티 모듈로 전환하는건 이번이 2번째이다..
스타벅스를 옮겼을 뿐인데 MongoDB Cloud 연결이 되지 않는다. 심란한 일이 조금 생겨서 기분 전환 겸 공원 근처에 있는 스타벅스를 갔다. 프로젝트를 시작하려고 하니 아래 같은 에러가 뜨는거 아닌가... 해결책 우선 현재 스타벅스와 같은 공간에서 공용 IP를 사용한다면 네트워크를 변경하는게 가장 적중률이 높은 해결책일 수 있다. 구글링을 해보니 스타벅스에서 몽고 DB 연결이 안된다는 글이 꽤나 많다. 해결책 1. 핸드폰 핫스팟 연결 2. 장소를 옮기자. (옮겨도 안될수도 ㅋㄷ) 3. 도커로 몽고 DB 이미지 따서 하자. 등등... 그 다음은 네트워크 접근 탭에 가서 access list를 보자. 디폴트로 모든 IP를 열어두기 때문에 가능성은 낮지 않을까 싶다. 이 문제는 왜 발생하는 것일까? (추측입니다) 몽고 DB 오피셜이 아니기 때문에 제가 말하는건 추측일 뿐입니..