오늘은 부트캠프의 튜터님이 조언해주신 부분들을 글로 적고자한다.
신입의 역할
- 신입들이 입사를 하게되면 코드를 창조해내는 경우는 잘 없고, 다른 사람의 코드를 읽고 이해하는 정도는 되어야 한다고 한다. 그 이유는 선임자가 퇴사를 하게 되었을 때, 후임이 그것을 받아 진행을 하게 되는데, 그 코드를 읽고 이해해서 수정을 하며 프로젝트를 진행하는 게 대부분 이기 때문이다. 그래서 입사후에는 코딩테스트 같은 코드를 만드는 일은 잘 없다고 한다.
프로젝트 및 가독성
- 개인 프로젝트 및 프로젝트내의 가독성이 중요하다고 한다. 그 이유는 회사를 입사하게 되면 여러가지 프로젝트를 반복적으로 수정 및 보안을 하게 되어서 프로젝트를 직접 만들어보고 개발 해본 경험이 있는 사람을 선호하고, 그리고 가독성이 중요한 이유는 앞전에 진행하던 사람이 다시 새로 들어온 사람에게 코드를 넘겨줄 때, 프로젝트를 이해하는 데 걸리는 시간이 많기 때문이라고 한다. 코드를 가독성 좋게 작성을 하면, 다른 사람들에게 이 코드를 전달할 때, 그것을 이해하는데 시간이 많이 단축 되기때문에 가독성이 좋아야 한다고 한다.
코딩테스트
- 코딩테스트를 보는 것은 최소한의 회사에서 원하는 것이 있는데, 그것을 이용해 준비가 안된 신입을 걸러내기 위한 방법이라고 한다. 코딩테스트 에서 가장 중요한건 컴파일을 해서 정답을 맞추는 것이다. 시간복잡도, 공간복잡도 같은 개념도 중요하지만, 코딩테스트를 대비해 만들어 둔 100가지 정도의 예제를 통과하면 100점, 하나씩 틀릴때마다 감점이라고한다. 시간복잡도를 고민하면서 짜는 것은 좋지만, 그것을 고려 하지 않는다고하면 감점의 요인이지 탈락의 요인은 아니라고 한다. 하지만 자료구조와 알고리즘을 되도록 공부를 많이 하는 것이 좋다고한다.
데이터베이스
- RDBMS는 모든 데이터 베이스 중에 가장 기본이므로, 그것을 깊게 학습하는 것이 필요하다고 한다. 관계에 대해서 잘 이해가 안되면 가장 간단한 예제로 나의 장바구니와, 너의 장바구니가 서로 공유가 되어서는 안된다. 나의 장바구니를 만들고, 너의 장바구니를 만드는 것이 관계형 데이터베이스의 핵심이라고 한다. 그리고 NoSQL은 데이터가, 예를들어 나의 장바구니 아이템1, 나의 장바구니 아이템2 이런식으로 각각 만들어 지게된다. 이로인해 데이터 베이스를 관리하는 것에 어려움이 있다. 하지만 이것을 뉴스같은 곳에서 사용하게 되면 하루에도 수십건의 뉴스가 올라왔다가 사라지는게 반복되다보니, NoSQL이 적합하다고 한다. 그리고 현업에서는 여러가지 다양한 데이터베이스를 다 같이 사용 한다고 한다. 그 이유는 RDBMS가 필요한 곳이 있고, NOSQL을 사용해야 더 좋은 곳이 있어서라고 한다.
JPA
- 현업에서 JPA를 생각만큼 잘 사용하지 않는다고 한다. 그 이유는 성능이 좋지않다 원하는 결과값을 얻기 힘들기 때문이다. 대규모 프로젝트를 하게 될 경우엔 속도가 저하되고 일관성이 떨어 질 수 있다고 한다. 하지만 게시판 같이 간단한 것을 구현 할 때는 사용한다고 한다. 그래서 내가 맡은 프로젝트가 어떤건지에 따라 달라진다고 한다.
여기까지가 튜터님과의 대화를 하면서 배운점 들이다.