목록전체 글 (48)
킴의 레포지토리
프로그램을 몇개 개발해보면서, 단순히 동작하는 프로그램을 넘어 변경에 유연하게 대응할 수 있는 설계의 중요성을 깨달았다. 계속해서 변경되고 추가되는 요구사항을 수용하려면 종종 프로그램 전체를 수정해야 하고, 예상치 못한 곳에서 발생하는 버그로 인해 프로그램 수정이 어려워지면, 결국 기존 코드의 재사용을 포기하고, 처음부터 새롭게 코드를 작성하는 상황에 직면할 수도 있다. 혼자 개발하는 상황에서도 변경된 요구사항을 반영하는게 부담되는데, 많은 컴포넌트가 상호작용하는 실제 서비스에서는 변경에 취약한 코드가 더욱 심각한 비효율을 초래한다. 이에, 진정한 의미의 좋은 설계가 무엇인지에 대해 다시 한번 깊이 고민해보기로 했다. 이 글에서는 첫째, 좋은 설계란 무엇인지 둘째, 왜 객체지향 설계가 좋은 설계를 위한 ..
한달간의 인턴십이 끝나고 마지막 세션에서는 그동안의 세션을 wrap-up하고 실무에 투입이 되었을때 주니어 개발자로서 현업에서 API를 개발할때 고려해야하는 11가지에 대해서 알아보는 시간을 가졌습니다. 먼저, 이전 세션들을 복기하면서 세션별 중요했던 포인트들을 짚어주셨습니다. 이전 세션에 대한 글은 다음에서 확인해볼 수 있습니다. 다음으로, 실무에 투입되었을때 주니어로서 고려해야할 11가지에 대해 짚어주셨습니다. 이 11가지 뿐 아니라 주니어 레벨을 벗어나면 더 고려해야할 것들이 많을 것이라고 말씀하셨습니다. 11가지를 스스로의 언어로 정리하면서 제가 실제로 프로젝트에 적용했던 방법에 대해 생각보았습니다. 1. project structure 프로젝트의 체계적인 구조는 협업 및 코드의 유지 보수를 더욱..
4-1주차 세션의 주제는 그래프였습니다. 3-1주차에 공부했던 트리와 비교해보면서 트리와 그래프에 대한 개념을 명확히 할 수 있었습니다. 이번 세션을 들으면서 스스로 중요하다고 생각했던 점과 면접에서 나올만한 질문에 대해 질문과 답변 형식으로 정리해 보았습니다. 1. 그래프의 정의와 그래프가 활용되는 예시를 들어주세요. 그래프는 연결된 객체들의 집합을 정점과 간선으로 나타내는 자료구조입니다. 그래프를 활용해 1)SNS의 팔로잉 관계 2)지하철의 노선도 3)도시와 도로 4)WWW(world wide web)등을 표현할 수 있습니다. 2. 그래프와 트리의 차이에 대해 설명해주세요. 그래프는 트리를 포함하는 개념입니다. 그래프 중에서 계층을 가지고 싸이클이 없는 단방향의 특수한 그래프를 트리라고 합니다. 그래..