본문 바로가기

이야기

(41)
인텔리제이에서 Lombok 적용이 안된다면 해결책 기본적으로 롬복 설치 및 인텔리제이 설정까지 끝냈음에도 롬복이 적용되지 않는 문제가 발생하곤 한다. 일단 순서에 맞게 진행을 했는지 확인해보자. 1. IntelliJ 플러그인에서 Lombok 플러그인이 Installed 상태인지, 더불어 활성화된 상태인지 확인하기 2. IntelliJ 설정에서 어노테이션 프로세서 - 어노테이션 처리 활성화 체크가 되어있는지 확인하기 3. pom.xml / build.gradle 의존성 관리자에 Lombok 의존성이 추가되었는지 확인 일반적으로 1 ~ 3을 진행하면 문제없이 진행되지만, Lombok을 의존성 프로세서로 설정되지 않았다면 설치 여부와 관계없이 사용할 수 없다. 따라서 다음과 같이 진행한다. 4. Lombok을 의존성 프로세서로 설정한다. annotationP..
SI식 개발 프로세스 정리하기 ============================== * 윗선 1. 요구사항 확인 2. 화면설계서 작성 3. 조율 & 컨펌 ============================== * 개발자 1. 요구사항 확인 2. 화면 설계서 확인 3. 인터페이스 정의서 확인 3-1. 없다면 소스 파악하는 시간이 필요 ** 4. 개발서버가 존재하는 고객사인지 확인 ** 4-1. 개발서버가 존재하지 않으면 운영서버에서 어떻게 테스트를 진행할 수 있는지 검토 5. 서비스 구현 5-1. 서비스 테스트 6. 화면 구현 6-1. 서비스 호출 테스트 6-2. 실제로 의도한대로 작동하는지 확인 7. 소스 반영 8. 고객사에서 확인 9. 피드백 있다면 수용 후 5~6 단계 반복 10. 고객사에서 컨펌했다면 비용 청구 11. 받았다면..
다사다난한 프로젝트가 종료됐다 처음부터 거의 끝까지 간 프로젝트를 마무리지었다. 진짜, 많은 것을 배웠다. 기술적으로는 훌륭하다고 말하기 어렵지만 그래도 큰 틀에서는 있을 것은 다 있는 프로젝트였다. 1. CI/CD, 업무분담을 통한 다양한 업체와의 협력, 새로운 툴에 적응하는 방법, 즉각적으로 만들어쓰는 공통모듈. 2. 어렵지 않지만 왜 그렇게 오류가 많을 수밖에 없는 지 알게된 프론트엔드 작업. 3. NULL 체크를 INPUT만 아니라, DB로부터 받아온 출력물에도 해야한다는 점. 4. 완성도와 성과 사이에서의 줄다리기... (이게 정말 사람 피말린다.) 1년 전의 나보다 한 발 나아갔다고 확신한다. 왜냐? 1년 전에 내가 작성한 코드를 보고 욕하면서 "누가 대체 이따위로 짰냐"고 화내면서 깃이력을 찾아봤기 때문이다. (...) ..
개발환경은 반드시 알아둬야 한다 개발을 하다보면 반드시 개발환경 단계에 대해서 알아야만 한다. 그래야 남이 무슨 말을 하는지 이해를 할 수 있다... "김 개발자님. 개발 서버에서 개발자님이 담당하신 서비스가 정상적으로 작동하지 않아요!" "제 컴퓨터에서는 잘 되는데요?" ==> 여기서 동일한 코드를 가지고 한쪽은 잘되고, 한쪽은 안된다고 한다. 둘 다 옳은 말을 하고 있다. 단지, 개발자는 개발환경이 로컬일 뿐이고, 검수자는 개발서버, 혹은 테스팅 환경에서 검수한 것이다. 여기서 "나는 되는데 왜 안된다고 하는 거야!?" 라고 화를 내면 자신의 부족함을 내세우는 것 외에는 아무것도 아니다... 확실하게 알아두고 가자. 1. Local 작동환경을 개인 컴퓨터에 설치해서 고정된 환경 내에서 프로그램을 개발하는 경우다. 일단 하나의 프로그..
한글 인코딩 한글은 EUC-KR, UTF-8 인코딩 타입이 공존한다. 따라서 영어처럼 단순 ASCII 인코딩 타입이 아니므로 인코딩 타입 문제가 발생하면 까다롭다. 그래서 한글을 사용할 때 UTF-8 인코딩 타입으로 통일하는 것이 인코딩 타입 문제에서 자유로워지는 방법이다.
SI에서 연봉협상이란? 너무나 무섭고 설렜던 첫 연봉협상이 끝을 보이고 있다. 2월부터 최대한 다양한 회사에 접촉해보고 여러 사람에게서 실제로 얼마를 받는지, 연차에 따른 연봉 테이블은 어떤지 알아보느라 거의 모든 시간을 쏟았다. 내가 얻은 정보가 신뢰할 수 있는 수준인지, 신뢰할 수 있다고 믿은 정보를 바탕으로 내가 회사에 내 연봉 인상을 위해서 제안을 할 수 있는지 많이 따져보았다. 핵심은 회사의 수입구조라고 판단을 내렸다. 기업별 연봉테이블이란 결국 그 회사의 수입구조에 직접적으로 영향을 받는다. 회사에 사장 혹은 임원급이 있다 (이하 경영진). 경영진은 특정한 기업과 다양한 조건을 걸고 계약을 맺는다. 계약을 수행할 사람을 뽑는다. 이런 조건 하에 모인 사람들이 직원이다. 직원은 회사가 맺은 계약을 실질적으로 수행하며 ..
분석 업무라는 것이 별도로 있더라. 개발, 설계 외에도 AS-IS의 로직 흐름을 파악하는 분석이라는 업무가 별도로 있다는 것을 알았다. 규모가 있는 프로젝트에서는 분석을 담당하는 개발자가 별도로 있다고 한다. 하지만, 소규모거나 망한(?) 프로젝트에는 그런 것은 없고 개발자가 분석 및 개발을 모두 담당한다고 한다. 그러려니 했는데, 이게 의외로 분쟁의 영역이 되기도 한다고 한다. 개발 외에도 분석까지 같이 진행하면 추가적인 비용을 요구하거나, 업무 자체를 거부하는 경우도 심심찮게 있다고 한다. 이 파트는 신규 프로젝트를 개발하는 단계에는 없는 단계였다. 현실적으로 차세대 프로젝트에서 기존에 사용되는 업무가 왜 그렇게 사용되는지 정확히 알 수가 없으니 추가된 단계라고 보인다. 작업을 하다보니, 이렇게 실질적인 업무 별로 추가되는 절차가 존재..
기존 업무 외 추가 업무 요청이 들어오면 어떻게 해야하는가? 기존 업무를 진행 중, 일정에는 안 잡혀있고 소요되는 시간은 상당히 길 것으로 예상되는 업무에 대한 협조 요청이 들어온다면 어떻게 대처해야할까? 이미 작성한 서비스에 대한 수정 요구사항이 들어왔다. 단순하게 조금만 손 보면 되는 것이 아니라, 참조하는 테이블을 수정하고 업무구분에 따른 별도의 쿼리를 작성해달라는 요구였다. 그런데 문제는 해당 서비스는 이것저것 총괄하여 보여주는 통합형 서비스라서 들어있는 쿼리가 상당히 많았다. 대략 서비스 개발에만 2주일이 넘게 걸렸다. 해당 서비스 쿼리 수정은 작성에 비하면 규모는 적으나 최소한 일주일 이상은 잡아야 할 문제였다. 서비스 뿐 아니라 화면에 요구하는 전문또한 변경해야 했기 때문에 화면 - 서비스 - DB를 모두 변경해야 하는 작업이다. 문제는 해당 업무는 ..
준용할 수 있는 변수명을 사용하기 프로젝트를 진행하면서 새로운 변수 작명 방법에 대한 이야기를 들었다. 기존에는 최대한 해당 변수를 명확하게 설명하려고 풀어쓰는 편이었다. 하지만 내부적으로 사용하는 고유단어가 많은 환경에서는 이런 방식은 독이 된다고 한다. 즉, 프로그램을 외부의 누군가를 위해서 만드는 것이 아니라 회사 내부에서 사용하려고 할 때 이런 경우가 발생한다. 전문성이 있는 경우가 특히 그렇다. 예를 들어서, 의료 관련 프로그램을 만든다고 해보자. 의학 용어는 어떤 단어가 무슨 뜻이라고 명확하게 정의가 되어 있다. 우리가 생각하듯 대충 감기, 몸살 이런 식으로 포괄적으로 표기할 수 있는 방식을 사용하지 않는 것이다. 해당 상황에 맞는 명확하고, 이미 결정된 단어를 사용해야만 하는 것이다. 구구절절 상황을 풀어쓰고 and, or를..
갑자기 데이터의 흐름이 보인다...!? 평소처럼 작업을 하는데 어느정도 문법이나 툴에 익숙해졌기 때문일까? 보다 효율적으로 일하려고 이미 작업한 것은 복사하고, 비슷한 부분은 수정하고 하면서 진행을 해봤다. 여태까지는 최대한 익숙해지려고 복붙 보다는 생각하면서 조금이라도 적어보려고 했지만, 이제는 딱 보면 어떤 데이터가 어디에 담겨있는지 상상이 갔다. 상당히 놀랐다. 여태까지는 이 경우에는 데이터가 어느 라인에 있겠지 이런 것은 머리가 아팠는데 자연스럽게 그런 것이 보였다. 그래도 자만은 금물! 이런 생각에 최대한 작업을 마무리하고 테스트까지 만들어서 돌려봤다. 놀랍게도... 한 방에 통과한 테스트가 8개 중 6개였다. 나머지 2개도 연관된 객체를 잘못 설정해서 그런 것이어서 그런 것이었다. 바로 수정하니 완성! 그리고 그 작업을 하고 살짝 ..