-[x] 백준 10문제풀이(8문제) -[x] 스터디 계획잡기 -[x] 카공 -[x] 이력서 수정
python3에는 엄청 편리한 함수들이 존재하는데, 하나같이 너무 편하다 Counter를 이용하면 list나 튜플에서 필요한 데이터나 로직을 뽑아낼 수 있는데, most라던가 통계학에서 많이 사용될 만한 기능들이 존재했다
오늘부터 면접 대비를 위해 CS공부를 시작하려고 한다.
Notion에는 개념 위주의 정리 블로그에는 개인적인 생각과 어떻게 응용되면 좋을지 1차원적으로 써보려고한다.
(한재협님이 운영하시는 인터뷰 저장소)[https://github.com/JaeYeopHan/Interview_Question_for_Beginner] 를 이용해 오늘부터 시작!
CS up!
OOP
java를 배우며 지겹게 들었던 객체 지향 프로그래밍 패러다임을 말하는데
C언어 같은 인터프리터 단위라면 java는 현실 세계를 모티브로 디지털 세계에 어떠한 행위를 할 때, 객체(물건,행동)같은 단위를 묶어 설계하고 개발하는 것을 의미하는데 , 또 시간이 흘러 FP, 함수형 프로그래밍 패러다임이 떠오른다, 코드 생산성 보다는 유지보수에 용이한 프로그램 개발이 주가 되기 때문이 아닐까.. 에자일처럼.
객체지향 특징
정보처리기사를 준비하면서 다양성과 정보은닉 등에 익숙한데, 뒤돌아서면 까먹는다.. 이해를 재대로 하지 못했나?
추상화 - > 캐리커쳐
정보은닉 -> 사용자가 사용하는 함수가 public/private
이런것들은 oop의 5원칙/ oop의 특징 으로 나뉘는 것 같은데 겁나 혼란스럽다
REST full API
앞서 프로젝트를 하면서 REST full한 서비스를 개발했다고 생각했는데, 정작 REST라는 의미에 대해서 무던했다
REST는 일종의 아키텍처라는데, 리소스와 행위를 명확하게 구분하는 것을 뜻한다고 이해했다
-> MSA에 가까워지는 서비스를 하기 위해서는 REST full이 필수적인것 같다 -? 왜냐하면 하나의 funcion에는 하나의 기능만 동작하도록 구현하고 작은 단위로 function들이 존재하는게 MSA라고 생각하는데, 직관적이게 행위를 표현하는 REST full한 디자인이 강제적이기 때문이 아닐까?
TDD
제일 싫다, 초콜릿을 판매하는데 살짝 녹인 초콜릿을 손으로 주물러서 원하는 형태로 가공하는게 아닌, 만들고자 하는 모형을 만들어 초콜릿을 부어 찍어내는 느낌인데, 원하는 기능에 맞춰 input값을을 미리 생각하고 date의 type들을 적으려면 기능적 명세를 완벽하게 이해하고 실행해야 가능 한 단계가 아닌가 싶은데, 프로젝트 진행에 있어 TDD를 적극 수용한다면 logic에 대한 기능적 명세를 완벽히 이해해야 할 것 같다.