Weekly Review - 8월 1주차

목차


What I did in this week.

SQL강의를 들으면서 프로젝트를 동시에 하다보니 조금씩 SQL이 익숙해지고 있다.

실전 모의 인터뷰가 있어서 기술 인터뷰 대비하여 이론관련한 부분을 정리를 조금했다. 실전 모의 인터뷰를 했는데 긴장하지 않고 들어갔는데 막상 들어가서 생각하지 못했던 질문을 받으니까 긴장이 되고 대답이 잘안되었다. 잘하진 못했지만 면접관에서 배려해주시고 피드백해주신 덕분에 면접경험을 좋았다고 평가하고 싶다. 개발자로서 처음 해본 면접이었는데 덕분에 어떻게 인터뷰를 준비해야하는지를 가늠할 수 있었다.


What I read in this week.

매일 경제 컴퓨터공학 정원 5배로 늘려야 한다. 기사에 대한 트윗 타래를 읽었다. 학원 출신의 비전공 개발자로써 아마도 저연봉의 SI 업계에서의 첫 출발이 점쳐지는 가능성이 높은 상황에서 이런 글을 읽으니 기분이 남다르다.

이 업계에는 이상한 모순이 존재한다. 처우에 대한 불만이 있는 노동자가 많음에도 업계에선 사람이 부족하다는 말이 오래전부터 끊임없이 나오고 있다. 사람은 있지만, 사람이 부족하다? 피라미드와 같은 구조에서 하위 구조엔 사람이 많지만, 상위구조엔 수요에 비해 공급이 부족하다는게 내 생각이다. 그리고 위 트윗 타래를 작성한 트위터리안이자 개발자님도 같은 생각이신 것 같다. 개발자는 많지만, 고급인력은 부족한 현실.

구직을 앞둔 상태에서 이런 글을 읽으니 기분이 남달랐다. 내 커리어의 시작은 아마도 이 바닥의 피라미드 구조에서 하위 계층에서 시작할 가능성이 높다. 여기에만 계속 있는다면 업계에 도움이 되지 못할 것이다. 언젠간 피라미드 상위로 올라가서 개발자가 부족하다는 업계에 도움이 되는 개발자로 성장하고 싶다. 커리어 내내 이 부분을 계속 생각하면서 일을 하고 싶다.


What I watched in this week.


요즘 프로젝트 하면서 드는 생각이었는데, 딱 나처럼 고민을 하는 사람이 있었나보다. 덕분에 조언을 들을 수 있었다.

프로젝트 막바지인 지금, 이제 곧 구직을 해야하는 시기가 오는데 ‘내가 과연 일을 잘 할 수 있을까?’ 라는 고민이 계속 들었는데, 회사들어가서 어떻게 업무에 적응해야 하는지를 생각해볼 수 있었다.

What I learned from this week.

면접을 앞두고 객체지향의 특징에 대해 다시 정리했다.

객체지향 언어의 4대 특징

  • 추상화_Abstraction
    • 우리가 구현하는 객체들이 가진 공통적인 데이터와 기능을 도출해 내는 것을 의미한다.
  • 캡슐화_Encapsulation
    • 동일한 기능, 속성을 묶어서 유지보수에 용이하게 만드는 기법이다.
    • 객체지향에서 캡슐화하는 데이터 구조와 데이터를 다루는 방법을 결합시켜 묶는 것을 말한다.
  • 상속성_Inheritance
    • 상위 객체의 속성을 하위 객체가 물려받는 것을 말한다.
    • 상속이 있기 때문에 객체지향이 가능해진다.
  • 다형성_Polymorphism
    • 객체의 동일한 이름이지만 parameter를 다르게 함으로써 완전히 다른 객체로 사용할 수 있는 특징을 말한다.

마찬가지로 기초적인 질문일 수 있으나 프레임워크와 라이브러리의 차이이다. 이 개념의 핵심은 제어의 흐름, 제어권이 누구에게 있느냐에 있는 것 같다.

Framework vs Library

  • Framework
    • 프레임워크는 컨테이너같은 개념이다. 개발자는 해당 컨테이너에서 필요한 부품만 개발해서 컨테이너에 장착해서 사용하면 된다.
    • Java를 사용하는 Spring Framework, Python을 사용하는 Django 등이 이에 해당한다.
    • 라이브러리와 다른 특징으로는 해당 어플리케이션의 흐름의 제어권이 어디에 있느냐로 구분할 수 있다. 라이브러리는 주도권이 개발자에 있지만, 프레임워크는 개발자가 부품을 채워넣을뿐 개발의 주도권은 프레임워크에 있다. 이를 **제어의 역전(IoC, Inversion Of Control)**이라고한다. 프레임워크의 함수(메서드)가 사용자 코드를 호출한다는 이야기이다.
  • Library
    • 라이브러리는 부품이다. 필요한 부품을 개발자가 가져와서 사용하면 된다.
    • 현재 프로젝트에서 사용하고 있는 스마트 에디터 라이브러리, SummerNote가 여기에 해당한다.