전체 글 53

[노마드코더 북클럽] 클린코드 3.함수

오늘 읽은 범위 3장. 함수 책에서 기억하고 싶은 내용을 써보세요. 함수는 한 가지를 해야 한다. 그 한가지를 잘 해야 한다. 그 한가지만을 해야 한다(p.44) 함수가 확실히 한가지 작업만 하려면 함수 내 모든 문장의 추상화 수준이 동일해야 한다.(p.45-46) 내가 함수를 짤 때도 마찬가지다. 처음에는 길고 복잡하다. 들여쓰기 단계도 많고 중복된 루프도 많다...(중략) 그런 다음 나는 코드를 다듬고, 함수를 만들고, 이름을 바꾸고, 중복을 제거한다. 메서드를 줄이고 순서를 바꾼다. 때로는 전체 클래스를 쪼개기도 한다. 이 와중에도 코드는 항상 단위 테스트를 통과한다. (p.61) 오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요 프로그래밍을 잘 하는 사람들은 처음부터 완벽하게 깔끔한 코드를 작..

TIL 2022.02.23

[노마드코더 북클럽] 클린코드 2. 의미있는 이름

오늘 읽은 범위 2장. 의미있는 이름 책에서 기억하고 싶은 내용을 써보세요. 의도를 분명히 밝혀라 변수나 함수 그리고 클래스 이름은 다음과 같은 굵직한 질문에 모두 답해야 한다. 변수의 존재 이유는? 수행 기능은? 사용 방법은? 따로 주석이 필요하다면 의도를 분명히 드러내지 못했다는 말이다. 그릇된 정보를 피하라 - 나름대로 널리 쓰이는 의미가 있는 단어를 다른 의미로 사용해도 안된다.(ex hp, ais, sco는 유닉스 플랫폼이나 유닉스 변종을 가리키는 이름) - 실제 List가 아니라면 accountList로 명명하지 않는다. - 서로 흡사한 이름을 사용하지 않도록 주의한다.(ex. XYZControllerForEfficientHandlingOfString, XYZControllerForEffici..

TIL 2022.02.20

[노마드코더 북클럽] 클린코드 1. 깨끗한 코드

오늘 읽은 범위 1장. 깨끗한 코드 책에서 기억하고 싶은 내용을 써보세요. 깨끗한 코드를 작성하는 방법은 배우기 어렵다. 단순히 원칙과 패턴을 안다고 깨끗한 코드가 나오지 않는다. 고생을 해야 한다. 스스로 연습하고 실패도 맛봐야 한다. 남들이 시도하다 실패하는 모습도 봐야 한다. 그들이 넘어지고 일어서는 모습도 봐야 한다. 결정을 내리느라 고민하는 모습, 잘못된 결정으로 대가를 치르면 모습도 봐야 한다. 깨끗한 코드는 읽으면서 놀랄 일이 없어야 한다고 위드는 말한다. 맞는 말이다. 코드를 독해하느라 머리를 쥐어짤 필요가 없어야 한다. 읽으면서 짐작한대로 돌아가는 코드가 깨끗한 코드다...(중략) 이만큼 깨끗한 코드는 너무나도 잘 짜놓은 코드라 읽는 이가 그 사실을 모르고 넘어간다. 모든 뛰어난 설계처럼..

TIL 2022.02.19

주니어 개발자 2021 회고

'다사다난'이란 단어는 너무나 진부하지만 나의 2021년에 딱 들어맞는 말이다. 회사 코드에 조금씩 익숙해지며 자신감이 생기기도 했고 많은 것을 배울수 있었던 사수분이 이직을 하셨다. 회사에서 혼자 서버 개발자로서 일해보기도 하고 외국계였던 회사의 한국 오피스가 문을 닫게 되면서 정든 동료들과 같이 회사를 그만두게 되었다. 최대 5-6개월정도 맘껏 공부를 하며 천천히 취업을 준비하고 싶었지만 막상 마음이 조급해지기도 하고 역시 회사를 다니며 실무에서 배우는게 가장 빠르다는 생각에 계획보다 빨리 취업을 하게 되었다. 면접을 본 회사 중 가장 마음에 드는 회사였고 1월 중순부터 입사하게 되었다. 취업 준비 과정을 중심으로 글을 써보고자 한다. 준비 시작 사실 본격적으로 이력서를 넣어야겠다고 다짐하고 시작한 ..

근황토크 2022.01.02

[CS] 면접 준비하며 정리해본 기본 CS

면접을 준비하면서 알아야할 기본적인 CS를 간단하게 정리해보았다. 객체지향 프로그래밍 OOP(Object Oriented Programming) REST API(Representational State Transfer) DNS (Domain Name System) HTTP와 HTTPS 비교 프로세스와 스레드 스크립트 언어와 컴파일 언어 1. 객체지향 프로그래밍 OOP(Object Oriented Programming) SOLID라 불리는 5가지 설계 원칙 1. SRP(Single Responsibility Principle) 단일 책임의 원칙 작성된 클래스는 하나의 기능만 가지며 클래스가 제공하는 모든 서비스는 하나의 책임을 수행하는데 집중되어 있어야 한다. 2. OCP(Open Close Princip..

TIL 2021.12.05

업비트 Open API 사용해보기

작고 소중한 돈을 가상화폐에 넣어두고 있는 코린이로서 소소한 이익을 얻고 있던 나는 얼마 전 감정 투자의 위험성을 알게 되었다.(나도 알고싶지 않았다) 크게 잃은 것도 아니고 처음 입금한 돈보다 조금 더 남아있는 상태라서(소소하게 벌었던 이익 정도만 잃음...) 큰 타격은 없었지만 그래도 재발을 방지하기 위해 가상화폐 자동매매봇을 만들어보는건 어떨까 관심이 생겼다. 구글링도 해보고 강의도 하나 결제해서 커리큘럼을 살펴보니 쉽고 재밌게 만들 수 있을 것 같아서 오늘은 업비트 open API를 이용하여 코인 종목과 시세를 불러오는 기능까지만 구현해보려고 한다. https://upbit.com/service_center/open_api_guide 업비트의 open API 안내에 가서 Open API 사용하기를..

TIL 2021.11.07

주니어 개발자 1년 3개월 첫직장 회고

9월 30일자로 마지막 근무를 마쳤다. 나의 첫 직장은 외국계 리더십 컨설팅 회사였다. 입사할 당시 리더십 컨설팅 플랫폼 런칭을 준비중이었고 입사 한달 후쯤에 플랫폼을 오픈했다. 플랫폼을 오픈하고 나서도 굵직한 기능들의 업데이트가 계속되어서 입사 후에 끊임없이 많은 것을 배울 수 있었다. Django를 사용했고 Microservices Architecture 로 6개의 서비스를 관리했다. 처음 1년정도 사수분이 계실 때는 api를 만드는 것을 주로 했고 마지막 3개월정도는 내가 배포도 관리해야 했다. 회사에서 쿠버네티스와 도커도 사용하고 있어서 사비를 들여 멋쟁이 사자처럼에서 도커/쿠버네티스 코스를 듣고 있었는데 회사가 문을 닫는다는 소식을 들었다ㅠㅠ 그래도 배워두면 유용할 것 같아서 계속 강의를 듣는 ..

근황토크 2021.10.09

도커 컴포즈

여러개의 컨테이너를 어떻게 더 편하게 관리할까 하나의 서비스인데 컨터이너를 여러개 사용할 때 하나의 컨테이너에만 이상이 생겨도 큰 장애로 연결될 수 있음 여러개의 컨테이너를 운영하기 위해 도커 컴포즈 생김 하나의 설정 파일로 여러개의 컨테이너 운영 가능 YAML Yet Another Markup Language 데이터 직렬화 템플릿.(ex. json) key/value 구조 대소문자 구분 콜론(:) 뒤 한 칸 떼기 대시(-)로 복수의 값 나열 해시(#)로 주석 작성

TIL 2021.09.29

이직준비 1단계(계획 세우기, 잡서칭, 이력서 작성)

주니어 개발자로 일한지 15개월차가 되었다. 1년 6개월~ 2년 정도 사이에 이직을 할거라고 생각하고는 있어서 링크드인에 이력을 조금씩 정리하고 있기는 했지만 회사가 9월까지만 운영을 하게 되면서 생각보다 빨리 이직을 준비하게 되었다. 사업장이 문을 닫으면서 퇴사를 하게 되는거라 그나마 다행히(?) 실업급여를 받을 수 있게되어 급하게 다음 직장을 찾아야 하는건 아니다. 이 기회에 적어도 두세달은 밀린 공부도 하고 자격증도 따며 시간을 보내고자 한다. 그래도 각종 공채나 괜찮은 회사들의 채용은 놓치지 않고 싶어서 구직사이트를 통해 공고를 꾸준히 살펴보고 있다. 주로 보는 사이트는 원티드와 링크드인이다. 원티드는 개발 직군에 대한 채용 공고가 비교적 깔끔하게 정리되어 있고 채용 보상금 제도가 있어서 원티드를..

근황토크 2021.09.26

도커 볼륨

시스템에서 볼륨은 저장소를 의미. 스토리지 스토리지에 저장된 데이터는 램에 저장된 것과 다르게 휘발되지 않음. 영구적으로 데이터를 유지할 수 있다. FastAPI에서 PostgreSQL로 쿼리 요청하면 데이터 생성, 변경이 일어남 데이터가 보관되는 장소가 필요 저장소를 연결하지 않고 컨테이너만 있으면 컨테이너가 삭제되면 기존의 작업들도 사라짐. 이와 같은 상황을 방지하기 위해 도커 볼륨이 있음. 바인드 마운트, 볼륨 컨테이너 내부에서 작업했던 데이터를 영구적으로, 혹은 일정기간동안 보존하기 위해 호스트의 공간을 마운트 하는 것 -> 호스트 공간의 일부를 컨테이너에서 USB메모리처럼 사용. 호스트의 특정 경로를 컨테이너의 볼륨으로 활용하는 것을 마운트라고 함 바인드 마운트를 사용하면 호스트의 파일 시스템의..

TIL 2021.09.24