본문 바로가기

분류 전체보기32

객체지향의 사실과 오해 (1) 1. 객체 지향은 실세계의 모델링? 객체지향에 대해서 "객체지향이란 실세계를 직접적이고 직관적으로 모델링할 수 있는 패러다임" 이라고 설명하는 책을 흔히 볼 수 있다. 이런 설명에 따르면 객체지향 소프트웨어는 실세계의 어떤 사물을 소프트웨어 내부로 모방해오는 실세계의 투영이며 객체는 실세계의 사물에 대한 추상화라는 의미이다. 이러한 설명은 이해에는 도움이 될 수 있으나 유연하고 실용적인 관점에서 객체지향 분석, 설계를 설명하기에는 적합하지 않다. 실제 어플리케이션의 소프트웨어에서 실세계의 사물과 대응되는 객체를 발견할 확률은 그다지 높지 않기 때문이다. 그럼에도 많은 책에서 이렇게 객체를 실세계의 사물에 대한 추상화라고 언급하는 데에는 이유가 있다. 2. 왜 실세계의 모델링이라고 설명할까? 객체지향 어플.. 2023. 1. 17.
객체지향의 사실과 오해 (0) 지금까지 JAVA 를 공부해오면서 객체지향에 대해서 그저 "객체를 class 로 만들어 사용하는 것" 정도로 생각했다. "객체지향" 이라는 패러다임의 중요성에 대해서 정확하게 인지하지 못했고 당연하게도 객체 지향에 입각한 사고도 훌륭하게 해내지 못했다. 하지만 이런 문제들을 혼자 공부하면서는 인지하지조차 못했다. 객체지향의 본질이 무엇인지와 같은 원론적인 접근 보다는 DB 설계를 잘하는 법, JPA 를 사용하는 방법 등 그저 지금 상황에서 내가 효율적으로 개발하기 위한 공부를 해왔다. 하지만 우테코를 준비하면서 "객체지향적" 이라는 키워드에 관심을 가지고 객체 하나하나에 집중을 하게 되었고 이는 결국 "객체지향" 이라는 패러다임의 원론적인 접근을 요했다. 그래서 검색을 통해 이 책을 접했고 읽게 되었다... 2023. 1. 17.
디자인패턴과 전략패턴 디자인 패턴이란? 프레임워크나 라이브러리를 이용하면 다른 사람이 만들어 놓은 방대한 양의 코드를 그대로 활용하여 수많은 기능을 사용할 수 있다. 적절한 구성요소를 선택해서 제 자리에 넣기만 하면 해당 기능을 구현할 수 있기 때문이다. 하지만 이런 기능들이 어플리케이션의 구조를 만드는데, 관리하기 용이하게 하는데에 도움을 주지는 않는다. 이를 위해서 라이브러리보다 더 높은 단계에서 소프트웨어 구조에 대해서 이해하기 쉽고, 관리하기 유연하게 만들어주는 것이 바로 디자인 패턴이다. 이런 디자인 패턴에는 몇가지 원칙이 있다. 어플리케이션에서 달라지는 부분과 달라지지 않는 부분을 분리한다. 구현보다는 인터페이스에 맞춰서 프로그래밍 한다. 상속보다는 구성을 활용한다. 먼저 달라지는 부분과 달라지지 않는 부분을 분리.. 2022. 12. 28.
우아한테크코스 최종 고찰 - 1차 심사 불합격 프리코스를 마치고 학교에서 전기 관련 프로젝트를 진행하느라 조금은 바쁜 나날을 보냈고 1차 심사 발표가 난 후 프로젝트가 끝나고 한 1주일 정도는 조금 쉬었다. 결국 우아한테크코스에 불합격 하게 되었다. 처음에는 우아한테크코스에 무조건 참여하고 싶다는 생각이 많이 들었다. 우테코에 들어가면 성장을 많이 할 수 있을 것 같았고 그래서 참여하고 싶다고 생각했다. 마지막 주의 과제를 제출하고 최종 코딩테스트에 대한 스터디, 개인 공부는 꾸준히 했지만 합격자 발표까지의 많은 시간을 보내고 나니 우테코에 대한 간절함이 점점 무뎌졌다. 내가 진심으로 간절하지 않아서 일수도 있고 불합격을 어느정도 예상하고 있어서 일 수도 있다. (그렇다고 합격에 대한 일말의 기대도 하지 않은 것도 아니고, 사실 간절하지 않았다고 정.. 2022. 12. 23.