Java/기술

[1년동안 회고록] 백엔드 서버를 담당하며...

백엔드 신입사원( soft 5.10 입사) 2023. 5. 31. 19:24
반응형

 2022-05-10 ~ ing

입사 당시 자바를 많이 사용 안할수 있고, 사수가 없다는 내용을 듣고 입사면접 제의를 응했으며 입사 후 바로 투입 예정이 아니기에 회사에 나와 바쁜 프로젝트쪽 업무를 도와주며 프로젝트 전반적인 느낌을 배워갔다.

 

이 후 신규 프로젝트에 투입이 되었으며, 자바를 사용했던 프레임웍이 따로 없었기에 밑바닦부터 프로젝트에 대한 설정을 진행하기 시작했다. 회사에서 요구하는 프레임워크는 Java Boot - JPA Repository를 사용하는 방향이였다.

 

사수가 따로 없기에 구글 선생님에 도움을 받아 사용하려는 라이브러리 및 기본 설정을 진행했으며 DB 연결 테스트를 비롯하여 기본 CRUD에 대한 Rest API를 구현했으며 사용하려는 프로젝트 내에 회사 프레임워크를 구현해 나갔다.

 

첫 프로젝트는 앱 네이티브에 필요한 백엔드 서버 개발 이였으며 프로젝트 내에서 아쉬웠던 점은 사수가 없어 혼자 해결해야하는 부분과 프로젝트 전반적인 구성 그리고 라이브러리에서 제공하는 함수들에 대한 이해도가 부족 했던 것 같다. 제일 아쉬운 부분은 프로젝트가 종료가 된것이다. 당사측 실수가 있엇거나 당사측 잘못으로 프로젝트 개발 도중 홀드가 되거나 중단된 것이 아니기에 더욱 아쉬운것 같다.

 

첫 프로젝트가 중단되면서 이후에 바로 다른 언어를 사용하게될 줄은 몰랐다. 차후 프로젝트에 대한 회의를 진행했했으며, 당사에서 더 이상 자바 개발은 고려하고 있지 않다고 들었을때 스트레스가 상당했다. 

 

두번째 프로젝트는 앱과 웹을 병행하는 프로젝트며 학습관리시스템 기능을 제공한다. 사용언어는 Net Framework를 사용하며 Entity Linq를 사용하며 개발을 진행했다. 다행인지 모르겠으나 Net에 대한 회사 프레임워크는 어느정도 마련되어있엇으며 해당 프레임워크로 언어에 대한 것들을 숙지를 하게되었다. 사수는 당연히 없었으며 자바와 비슷하면서도 다르다는 느낌을 많이 받았다. 가장 편했던 것은 자바에서 보통 변수를 선언 할경우 아래와 같이 변수를 설정하는데

1. String _tempStr1 = "String Constant Pool";
2. String _tempStr2 = new String("Heap");

C# 같은경우 아래와 같이 사용할수 있엇다는 점이다.

1. var _tempStr1 = "String Constant Pool";
2. var _tempStr2 = new string("Heap");

나름 편한것도 있엇고 불편한것도 많았던것 같다.

 

.Net Framework를 사용하며 프로젝트 구성해나가면서 담당했던 부분을 잊지 않고 기억하기위해 적어둔다.

 

사용자 정보, 고객지원 게시판, 로그 게시판, 사용자 추적로그, 권한 추적로그

이외에 Azure 스토리지, AWS S3등 사용하게 하는 파일 업로드 및 다운로드 기능만 제공하는 프로젝트와 전자정부 인증서 페이지 기능만 제공하는 프로젝트를 구성 및 개발을 담당했고, AWS VM과, Azuer VM을 통해 프로젝트를 배포를 했다. 다만 배포를 하게되는 과정에서 로컬로만 개발해서 테스트를 진행할 때와 많이 다른점을 느꼇으며 윈도우기반 가상머신을 사용해 진행했기 때문에 서버가 종료될 경우 스케줄러를 통해 다시 프로젝트가 가동되도록 설정을 진행해 두었다.

별도로 만든 프로젝트 같은경우 다른 사용자도 적용을 할 수있도록 Server API 개발 가이드 문서까지 담당해 작성을 했다. DBA가 없어서 DB에 대한 구성도를 만들고 ERD를 만들었다. 다만 ERD 및 DB에 대해서는 부족한 점이 많아. 컬럼 수정 및 추가 테이블 추가등 요구사항들을 받아주며 즉각 수정을 진행했다는 점이다. 서버 DB에 DB 암복호화 솔루션 담당자와 DB암호화에 대해서도 확인 할 수 있었다. 플로그인 방식을 사용하여 Table 이외 View를 만들어 트렌젝션으로 암복호화 하는 방식도 적용을 해보았고 실제 서비스 이용에 문제가 있어 API 암호화 방식으로 제공되는 암복호화 방식을 적용하게 되었다. 코드상으로 제공했던 암복호화 방식 적용하는 것도 시간이 꽤 소요가 되었는데 궁극적으로 해당 솔루션 라이브러리는 Windowns에 Character Set을 전달받아 인코딩과 디코딩이 되고있엇다. 가상머신은 언어셋이 영어로 되어있기에 한글 깨짐 현상에 대해 정말 이삼일을 찾아본것 같다. 윈도우 언어셋을 변경하고 암복호화를 적용해놨다.

static 을 사용한 함수선언 이나 메서드를 사용 하기 위해 객체를 생성하는 방법등

 

사실 비전공자 같은경우 학원에서 가르치는 정보들만 알고 배울 수 밖에없고 실제 기간이 짧아 배움에 정도는 깊이가 깊지 않아 입사를하고 적응하는것까지 시간이 많이 걸리는것 같다. 입사 이후 1년동안 외주측에 메일도 쓰고 직접 컨텍을하고 보안에 취약한 부분도 파악을 하며 많은 것을 배웠으나 개발자는 언제나 공부하는 입장인것 같다. 하나를 배우면 두개가 튀어나오고 둘을 배우면 세개가 튀어나온다. 실제 설계를 담당하는 담당자가 없다보니 개발을 하면서 부족한 점을 채워 나아갈수 밖에 없었고 사수가 없었다보니 혼자 구글 선생님들을 통해 아니면 스택오버플로우 형들을 통해 알아가는 방법 밖에는 없었다. 많은 부분이 처음보다 많은 성장을 이루어 냈고 예전에 자바를 했던 프로젝트나 Net을 사용한 프로젝트를 볼 때 어떻게 쓰이는 메서드, 함수인지 알게 되었고, 직접 짠 로직같은경우는 왜 이렇게 멍청하게 구현을 했을까 싶기도 한다. 그런 생각이 들 때 마다 로직을 즉각 수정하고 있다. 가장 많이 발전한 것은 1년동안 구글 검색엔진을 어떻게 하면 더욱 잘 활용 할 수 있는지 어떤식 으로 검색을 하면 정보가 더 많이 나오는지 알게 되었다. 하지만 다른걸 다 재치고 입사 후 8개월 만에 연봉이 15%나 오른게 가장 좋다. 아쉬운 부분으로는 하는 업무가 많고 늦은 퇴근부터 야근까지 많이 바쁘다보니  사이드 프로젝트 진행을 많이 못해 놨다는 점이다. 현재 RestAPI 테스트까지만 진행되어있는 상태며, 사이드 프로젝트는 홀드 상태이다.

 

하지만 나는 이직을 해야겠다.

반응형