회고

개발자 회고, 프로젝트 회고 | 2023년 5-8월 회고

개발자R 2023. 9. 11. 18:28
반응형

2023년 5-8월 - 대○항공 P○○ 프로젝트

 
    이전 ST○○프로젝트가 끝나고 다음 내가 투입될 프로젝트까지 2달간 시간이 떠서 임시로 투입될 프로젝트였다. P○○ 시스템은 대○항공의 거의 모든 알림을 관장하는 시스템이다. 항공권 여정 안내, 게이트 변경 안내, 할인운임안내, 지연안내, 비정상운항 안내 등등 수 십가지의 이메일, 알림톡, 문자 안내문을 만들고 보내는 시스템이라 배치와 백엔드 api개발 위주의 프로젝트였다. 나는 지금까지 React로 프론트엔드 개발을 위주로 해왔기 때문에 이 프로젝트 투입 시 굉장한 두려움이 있었다. 내가 아는 자바는 4년전 자바였다. 심지어 시스템 자체가 아주아주 복잡했다. 어차피 2개월 후에 떠나는 지원 프로젝트이니 내가 잘 할 수 있는 걸 해서 최대한 많은 일을 하는 것이 효울적이라고 생각했고, 관리자 페이지 개발을 진행했다.
 
    그러다 모종의 이유로 P○○ 프로젝트 투입 기간이 연장되었고, 진짜 업무 로직과 백엔드 생태계를 알지 않으면 개발할 수 없는 상태가 되었다. 안그래도 백엔드 개발은 오랜만에 하는데 SOAP 방식 인터페이스를 서너개씩 연동해서 개발을 해야하고, 데이터 구조 자체가 로직에 관련이 되어있어 코드가 아주아주 복잡하고 의미파악이 어려웠다. 오랜만에 스트레스를 받으며 개발을 했는데, 결국에는 끝을 내는 그 순간이 정말 행복하고 성취감이 있었다.
 
    새로 배운 것들이 많은 프로젝트였다.
1) SOAP / 웹서비스 방식 인터페이스 활용한 개발 : WSDL 문서로 Java 파일로 변환하여 데이터를 가져오는 방식
2) DDD 패턴으로 개발 : 아직까지 뭐가 그렇게까지 좋은지는 모르겠다. 추후에 운영을 해봐야 아는 것일까? Dto를 Entity로 바꾸고, 다시 Entity를 Dto로 바꾸고 하는 과정이 필요한 경우도 많았지만, 단 한두개의 속성 때문에 반복작업을 해야하니 비효율적이라는 생각이 들기도 했다. 30개 속성을 가진 dto를 entity로 변환하는데 builder 패턴으로 작성하니 그 코드만 10줄이 넘는다. 심지어 자동완성 때문에 값이 잘못 들어가는 경우도 왕왕 생긴다. 이게 맞나..? 
3) Optional 객체 활용 : 필요한 기능을 잘 활용했지만... 여전히 Java 특유의 뭐 하나 쓰려면 수많은 코드를 써야하는 그 지점이 불편하다. 코드가 기니 디버깅 할 때 읽어야할 코드 양 자체가 많아 비효율적이다.  
4) 처음으로 배치 개발 : 사실 별거 아니었지만 해보기 전까지 '배치는 뭐가 엄청 다를거야' 라고 생각했던 부분을 깔끔하게 '아니다'로 정리할 수 있어서 좋았다.
5) 추후에 운영할 분들과 개발을 진행함 : 어떤 방향으로 si 를 수행해야할까... 우리는 완벽한 시스템, 아주 잘 짠 신식 디자인패턴, 신식 함수를 이용한 프로그램을 개발하는 경진대회에 나온게 아니다. 운영을 맡은 개발자들이 디버깅하기 쉽고 유지보수하기 쉬운 코드를 짜야한다. 개발할 때는 불필요하더라도 디버깅, 로깅을 위한 테이블이 필요할 수도 있고, stream 패턴으로 한두줄로 한번에 짜는게 깔쌈할 수도 있지만 적당히 분리해서 코드를 분리해야하는 경우도 있었다. 하지만 달리 말해 디자인패턴, 새로운 문법들이 괜히 나온건 아니다. 분명히 그것들을 적용하여 해결할 수 있는 것들이 많으니 트렌드를 놓치지 않고, 고려하며 개발해야한다.
 
    어려움도 많은 프로젝트였다. 개발자도, 비즈니스 업무하는 고객도 내부 로직을 모르고 요구사항을 정리할 수 없을정도로 복잡한 시스템이었다. 10년동안 먼지쌓인 코드가 많아 필요없지만 계속 돌아가는 코드도 정말 많았다. 하지만 고객분들이 친절하고 같이 으쌰으쌰 하려고 하는 분위기라서 힘들지만 스트레스를 많이 받진 않았다. 또 노력에 비해 결과물이 앙증맞았다. 수백, 수천 줄의 코드를 짜서 나온 결과물이 문자 3줄이라니.. 이거 참 허탈하기도 했다. 마지막으로 이렇게 복잡한 시스템은 분석설계를 먼저 진행한 다음 개발을 시작해야하는데, 애자일 방식으로 운영해야해서 개발 중간중간 뜯어고쳐야하는 부분도 많았다. 리스크 관리를 위해 아무리 애자일이 좋고, 워터풀 방식이 안 좋다고 해도 상황에 맞게 적용하는 것이 필요하다.
 
    나중에 P○○ 오픈을 하면 대○항공을 이용할 때 우리가 만든 안내문, 문자들이 발송될 것이다. 나중에 내가 그걸 받게되면 감회가 새로울 것 같다.
 


내가 받아본 다양한 항공사의 안내문자들
내가 받아본 다양한 항공사의 안내문자들
내가 받아본 다양한 항공사의 안내문자들

 

반응형