"All For One"
저는 java 개발자가 되기 위해서 자바 언어를 가장 처음으로 공부하였고, 지금도 매일 알고리즘 풀이를 병행하며 컴퓨터 사고를 기르기 위해 노력하고 있습니다.
기존에 공부했던 JSP에 대해 조금 더 파악하고, spring에 활용하기 전에 배우기 위해 IT OO 학원에 다니며 공부하였고, 여러 예제를 사용한 Spring 프로젝트를 진행했습니다.
백엔드 이외에도 front-end에 활용되는 javascript의 기능 활용을 더 잘 알기 위해, 또 JQuery보다는 document에서의 element 활용이나 변수의 사용법을 확실히 알기 위해 vanilla JS를 사용하여 조금씩 난도를 높여가며 프로젝트를 진행 중입니다.
백엔드의 데이터 활용에 필수적인 DB 사용법을 알기 위해, 프로그래머스라는 사이트에서 MySql을 사용하여 모든 문제를 해결하였고, OOOOOO사이트에 존재하는 MS-Sql 프로시저와 쿼리로 이루어진 다양한 데이터들을 가공하고, 편집하여 보았습니다.
현재는 OOOOOOOOOOOO 회사에 재직하며 Oracle을 사용중이며, 여러 Toy Project를 MySql, MS-SQL, Oracle 모든 DB를 사용하여 시도해 보았습니다.
또한 현재 자바 이외에도 여러 분야에서 다양한 언어가 사용되고 있으며 이와 java의 차이점을 알고, 장단점을 파악해 적절하게 사용하기 위하여 kotlin을 통한 애플리케이션 제작, C언어를 사용한 리눅스 보드 제어, C++ 언어로 디지털 필터 구현, PHP 웹 게시판 제작 등 많은 활동을 하였습니다.
이러한 경험들 덕분에 저는 각각의 언어에 장단점이 명확히 존재하며, 사용자 또한 명확한 목적을 갖고 언어를 사용한다면 더욱 효율적인 언어의 사용이 가능하다는 것을 알았습니다.
그리고 back-end와 front-end 간의 기능 부여와 통신을 공부하였습니다.
ajax를 사용하여 페이징과 글 순서 변경, 강의 전달 등을 구현하였으며, 이 과정에서 보안 취약 문제 해결 방안들과 속도 개선 등에 대해 알 수 있었습니다.
개인적으로는 현재 스프링 부트를 사용하는 웹 페이지 제작법을 공부하고 있는데, 해당 프로젝트는 spring security를 이용한 여러 보안 처리, JPA의 N+1문제 해결 방법, MVC 패턴의 효율적 사용이나 클린 코드 작성 등 제가 가진 지식을 최대한 활용하고 더디더라도 많은 것을 알 수 있도록 공부하고 있습니다.
또 알고리즘 풀이 방법이나 개인적으로 공부한 내용들은 영상으로, 블로그에 글로 작성해 두었습니다.
이렇게 다양한 공부를 통해 저는 여러 언어나 DB에 대한 기초적인 지식을 쌓을 수 있었고, 이는 자바 개발자로서 발전할 수 있는 밑거름이 되었습니다.
그리고 이러한 여러 활동들과 그것을 통한 배움, 많은 사람과의 소통을 통해 저는 새로운 곳에 적응하고 새로운 것을 배울 때에 잘 해낼 수 있다는 자신감을 갖게 되었습니다.
저에게 있어 백엔드 개발에 중요한 것은 이해하기 쉬운 코드의 작성과, 효율적인 코드의 작성입니다..
먼저 웹의 유지 보수를 진행하거나 개인적으로 진행하는 프로젝트의 리펙터링 과정에 있어 자신이 작성했던, 혹은 이전에 작성되어 있던 코드를 이해하는 데에 있어 어떤 파라미터가 사용되었고 return되는지, 또 어떠한 용도를 위해 코드를 작성했는지를 아는 것은 큰 메리트를 가질 수 있습니다.
그리고 다양한 사용자가 이용할 수 있는 프로젝트에 있어 효율적인 코드 작성은 필수적입니다.
예를 들어, spring boot의 JPA를 사용하는 경우 깊게 생각하지 않으면 발생할 수 있는 N+1에러나 혹은 여러 상황에서 일어날 수 있는 효율성 저해 요소를 제거하는 것이 다른 팀원과 협업하고, 많은 사람이 사용 가능한 사이트를 제작하는 개발자가 고려해야 하는 것이라 생각합니다.
현재 OOOOOOOOOOOO 회사에서 Digital System Guideline 제작 프로젝트를 진행 중에 있는데, 이러한 경험을 통해 얻은 지식을 활용하여 개발하고 있습니다.
이외에도 개발에 있어 고려해야 할 요소는 굉장히 많고, 이런 공부를 위해 현재 진행하는 프로젝트에서 리펙터링을 진행하거나 새로운 기술을 적용하고 있습니다.
이곳 가비아에서 제가 가진 장점과 지식을 활용할 수 있는 미래를 펼쳐나가겠습니다.