본문 바로가기

✍️ 글쓰기26

1. 프론트엔드 세팅 - Git/Github으로 React 개발 환경 세팅 | React & Flask Web app ■ React + Flask + GraphQL 웹 어플리케이션 프로젝트 전체 로드맵 React & Flask & GraphQL 웹앱 프로젝트 시작 🏁 이번에 리액트와 플라스크를 활용해 프로젝트를 할 기회가 생겼다. 거기에 GraphQL API에서 필요한 데이터들을 CRUD 해야 했는데, 이런 조합의 프로젝트 예시를 찾아보는 것이 쉽지 않았다 🥺 언젠 joy-able.tistory.com ■ Git repository 만들기 1. 새로운 Repository 만들기 - Frontend와 Backend repository를 따로 만들 예정이다. 지금까진 별 생각 없이 프론트엔드와 백엔드를 같은 repo에 넣었는데, 사실 배포하면서 각각 다른 repo에 있는 것이 더 효율적이고 편하다는 것을 깨닫고 repo 대.. 2022. 3. 15.
#노마드북클럽 | 클린 코드 (Clean Code) Challenge Complete! #노마드북클럽 챌린지 완료! 생각보다 시간이 정말 빨리 지나갔다. 매일 매일 꾸준히 하는 일들이 지루하게 느껴질 수도 있지만, 오히려 시간을 더 빨리 흘러가게 만드는 것 같다. 처음 시작할 때만 하더라도, 3주 내내 할 수 있을까 걱정을 많이 했던 기억이 난다. 책을 읽기만 한 게 아니라, 중간에 퀴즈도 풀고 코드를 깨끗하게 바꾸는 미션도 진행하면서 지겹지 않게 책을 읽을 수 있었던 것 같다. #노개북 챌린지가 아니었다면 클린 코드를 이렇게까지 정독할 수 있었을까 싶다. 거기에 더해 TIL 작성 방법을 알게 되고, 몸에 익히게 되면서, 앞으로 책을 읽으면서 공부할 땐 어떤 방식으로 해야할지 방향도 잡을 수 있었다. 그리고 한 과제당 이틀의 시간을 주는 경우도 있었는데, 그 부분이 오히려 챌린지를 빼먹지 .. 2022. 3. 15.
React & Flask & GraphQL 웹앱 프로젝트 시작 🏁 이번에 리액트와 플라스크를 활용해 프로젝트를 할 기회가 생겼다. 거기에 GraphQL API에서 필요한 데이터들을 CRUD 해야 했는데, 이런 조합의 프로젝트 예시를 찾아보는 것이 쉽지 않았다 🥺 언젠가 다시 보면서 도움이 되길 바라면서 기록으로 남겨보자 한다. 1. 프론트엔드 세팅 - React 2. 백엔드 세팅 - Flask 2-1. Flask에서 GraphQL 데이터 GET & POST 2-2. WSGI 서버 Gunicorn 사용하기 3. 배포 - AWS 3-1. AWS Elastic Beanstalk + AWS S3로 웹 어플리케이션 배포하기 3-2. AWS Elastic Beanstalk + AWS S3 + CloudFront 에서 프론트엔드 - 백엔드 라우팅 2022. 3. 15.
#노마드북클럽 | 클린 코드 (Clean Code) 14일차 TIL (DAY 14) 🔖 오늘 읽은 범위: 10장, 클래스 * 13일차는 Quiz 진행 완료! 책에서 기억하고 싶은 내용 클래스 체계 (p172) 변수 목록: 정적(static) 공개(public) 상수 / 정적 비공개(private) 변수 / 비공개 인스턴스 변수 * 공개 변수가 필요한 경우는 거의 없음 공개 함수 * 비공개 함수는 자신을 호출하는 공개 함수 직후에 온다 추상화 단계가 순차적으로 내려가, 프로그램이 신문 기사처럼 읽힌다. 캡슐화 (p172) 변수나 유틸리티 함수들을 최대한 비공개 상태로 유지하되, 필요한 경우 protected 로 선언해 패키지 단위까지 공개해 테스트 코드에 접근을 허용하기도 한다. 하지만 캡슐화를 풀어주는 결정은 언제나 최후 수단으로 생각해야 한다. 클래스는 작아야 .. 2022. 3. 9.
#노마드북클럽 | 클린 코드 (Clean Code) 12일차 TIL (DAY 12) 🔖 오늘 읽은 범위: 9장, 단위 테스트 책에서 기억하고 싶은 내용 TDD 법칙 세 가지 (p155) 첫째 법칙: 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다. 둘째 법칙: 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다. 셋째 법칙: 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다. 깨끗한 테스트 코드 유지하기 (p156) 테스트 코드는 실제 코드 못지 않게 중요하다. ... 테스트 코드는 사고와 설계와 주의가 필요하다. 실제 코드 못지 않게 깨끗하게 짜야 한다. (p157) 테스트는 유연성, 유지보수성, 재사용성을 제공한다. (p157) 테스트 케이스가 없으면 실제 코드를 유연하게 만드는 버팀목도 사라진다. (p157.. 2022. 3. 7.
#노마드북클럽 | 클린 코드 (Clean Code) 11일차 TIL (DAY 11) 🔖 오늘 읽은 범위: 7장, 오류 처리 * 10일차는 Quiz 진행 완료! 책에서 기억하고 싶은 내용 오류 처리는 중요하다. 하지만 오류 처리 코드로 인해 프로그램 논리를 이해하기 어려워진다면 깨끗한 코드라 부르기 어렵다. (p130) 오류 코드보다 예외를 사용하라. (p130) Try-Catch-Finally 문부터 작성하라. (p132) 어떤 면에서 try 블록은 트랜젝션과 비슷하다. try 블록에서 무슨 일이 생기든지 catch 블록은 프로그램 상태를 일관성 있게 유지해야 한다. (p132) 먼저 강제로 예외를 일으키는 테스트 케이스를 작성한 후 테스트를 통과하게 코드를 작성하는 방법을 권장한다. 그러면 자연스럽게 try 블록의 트랜젝션 범위부터 구현하게 되므로 범위 내에서 .. 2022. 3. 4.
#노마드북클럽 | 클린 코드 (Clean Code) 9일차 TIL (DAY 9) 🔖 오늘 읽은 범위: 6장, 객체와 자료구조 책에서 기억하고 싶은 내용 변수를 비공개(private)로 정의하는 이유가 있다. 남들이 변수에 의존하기 않게 만들고 싶어서다. (p118) 그저 (형식 논리에 치우쳐) 조회 함수와 설정 함수로 변수를 다룬다고 클래스가 되지 않는다. 그보다는 추상 인터페이스를 제공해 사용자가 구현을 모른 채 자료의 핵심을 조작할 수 있어야 진정한 의미의 클래스다. (p119) 개발자는 객체가 포함하는 자료를 표현할 가장 좋은 방법을 심각하게 고민해야 한다. 아무 생각 없이 조회 / 설정 함수를 추가하는 방법이 가장 나쁘다. (p119) 객체는 추상화 뒤로 자료를 숨긴 채 자료를 다루는 함수만 공개한다. 자료 구조는 자료를 그대로 공개하며 별다른 함수는 제.. 2022. 3. 1.
#노마드북클럽 | 클린 코드 (Clean Code) 8일차 TIL (DAY 8) 🔖 오늘 읽은 범위: 5장, 형식 맞추기 * 7일차는 Mission으로 나쁜 코드를 고치는 방식으로 진행 완료! 책에서 기억하고 싶은 내용 오랜 시간이 지나 원래 코드의 흔적을 더이상 찾아보기 어려울 정도로 코드가 바뀌어도 맨 처음 잡아놓은 구현 스타일과 가독성 수준은 유지보수 용이성과 확장성에 계속 영향을 미친다. (p96) 신문 기사처럼 작성하라. ... 소스 파일 첫 부분은 고차원 개념과 알고리즘을 설명한다. 아래로 내려갈수록 의도를 세세하게 묘사한다. 마지막에는 가장 저차원 함수와 세부 내역이 나온다. (p98) 개념은 빈 행으로 분리하라 (p98) 서로 밀접한 코드 행은 세로로 가까이 놓아야 한다는 뜻이다. (p100) 변수는 사용하는 위치에 최대한 가까이 선언한다. ..... 2022. 2. 28.
#노마드북클럽 | 클린 코드 (Clean Code) 6일차 TIL (DAY 6) 🔖 오늘 읽은 범위: 4장, 주석 책에서 기억하고 싶은 내용 나쁜 코드에 주석을 달지 마라. 새로 짜라. (p68) 주석은 언제나 실패를 의미한다. 때때로 주석 없이는 자신을 표현할 방법을 찾지 못해 할 수 없이 주석을 사용한다. (p68) 진실은 한곳에만 존재한다. 바로 코드다. (p69) 좋은 주석: 법적인 주석 정보를 제공하는 주석 의도를 설명하는 주석 의미를 명료하게 밝히는 주석 결과를 경고하는 주석 TODO 주석 중요성을 강조하는 주석 이해가 안 되어 다른 모듈까지 뒤져야 하는 주석은 독자와 제대로 소통하지 못하는 주석이다. 그런 주석은 바이트만 낭비할 뿐이다. (p76) 오늘 읽은 소감 및 생각 변수명이 길고 서술적이거나, 긴 class 오브젝트를 위한 주석은, 코드를 다.. 2022. 2. 25.
#노마드북클럽 | 클린 코드 (Clean Code) 5일차 TIL (DAY 5) 🔖 오늘 읽은 범위: 3장, 함수 책에서 기억하고 싶은 내용 함수를 만드는 첫째 규칙은 '작게!'다. 함수를 만드는 둘째 규칙은 '더 작게!'다. (p42) if 문 / else 문 / while 문 등에 들어가는 블록은 한 줄이어야 한다는 의미다. ... 그러므로 함수에서 들여쓰기 수준은 1단이나 2단을 넘어서면 안 된다. 당연한 말이지만, 그래야 함수는 읽고 이해하기 쉬워진다. (p44) 함수는 한 가지를 해야 한다. 그 한 가지를 잘 해야 한다. 그 한 가지만을 해야 한다. (p44) 단순히 다른 표현이 아니라 의미 있는 이름으로 다른 함수를 추출할 수 있다면 그 함수는 여러 작업을 하는 셈이다. (p45) 함수가 확실히 '한 가지' 작업만 하려면 함수 내 모든 문장의 추상화 .. 2022. 2. 23.