본문 바로가기

분류 전체보기215

리팩토링 스터디 #5.5 - 내용 미리보기 개인적인 사정으로 지난 스터디 당일에 참여하지 못했습니다. 스스로 공부했던 내용을 되짚어보는 것으로 해당 챕터를 마무리 지었고, 따로 리팩토링 스터디 #5는 업로드 하지 않을 예정입니다. 아쉽지만 다음 스터디를 더 알차게 진행하는 것으로 만족해야겠습니다. 이번 주제는 지난번에 이어 캡슐화에 관련된 리팩토링 기법들입니다. 기본형을 객체로 바꾸기 Replace Primitive with Object 첫 번째로 살펴 볼 기법은 기본형을 객체로 바꾸기입니다. 우리는 보통 단순한 정보를 표기할때 이러한 기본형으로 많이 표현합니다. 그러나 개발이 진행되다보면 처음엔 생각하지 못했던 추가적인 동작을 해야할 일이 생깁니다. 예를 들면 단순한 전화번호를 문자열로 표현했었는데 나중에 보니 지역 번호를 따로 추출해야 한다던.. 2020. 11. 14.
리팩토링 스터디 #4.5 - 내용 미리보기 2주 동안의 휴식기를 두고 리팩토링 스터디가 재개되었습니다. 오랜만의 스터디 준비가 어색하게 느껴지지만 차근히 읽어가다보면 내용을 이해하는데에는 그리 오랜 시간이 걸리지 않을 것 같습니다. 이번 주 스터디 범위는 6.10 여러 함수를 변환 함수로 묶기부터 7.2 컬렉션 캡슐화하기까지 약 40페이지 가량입니다. 많지 않은 양이니 가벼운 마음으로 시작해보겠습니다. 여러 함수를 변환 함수로 묶기 Combine Functions into Transform 공통 데이터를 중심으로 엮여서 작동하는 함수들은 하나의 클래스로 묶는 것이 편합니다. 이렇게 하면 각 함수들이 공유하는 공통된 환경을 표현하기가 명확하고, 함수에 전달되는 인수를 줄여서 객체 안에서의 함수 호출을 간결히 만들 수 있습니다. 이런 객체를 시스템의.. 2020. 11. 4.
리팩토링 스터디 #4 - 기본적인 리팩터링 2주만에 쓰는 리팩토링 포스트입니다. 스터디 자체는 정상적으로 진행했었지만, 시험기간이 겹치다보니 정리 후 업로드하는데 다소 시간이 걸렸네요. 오랜만에 읽는 포스트라 기억이 흐릿할 수 있으니 챕터의 자세한 내용은 리팩토링 스터디 #3.5 - 내용 미리보기를 참고해주세요. 성능 이슈 첫 시간에 올렸던 궁금했던 점 중 하나인 성능 이슈에 대한 이야기가 있었습니다. "우선 리팩토링부터 하고, 개선은 나중에 하면 된다!" 라고 하던 저자의 말이 있었는데 이번 시간에서 그 이유가 어느정도 설명되었습니다. 최적화의 법칙(당신이 전문가가 아니라면 최적화는 하지 마라. 만약 당신이 전문가라면, 그래도 하지 마라.) 에 나와있는 것처럼 생각보다 우리가 만든 프로그램에선 최적화가 필요하지 않다는 의미인데, 함수 한 두 단.. 2020. 11. 3.
네이버 오픈클래스 참가 기념품을 받았어요 네이버 선배세미나 참가 후기입니다 글을 쓴지 한참 지났었는데, 코로나 사정도 겹치면서 기념품을 드디어 받게 되었네요ㅠㅠ 돌아돌아 오기까지 꽤 오래 걸렸지만 받아서 너무 기분이 좋아요. 원래 현장에서 받았어야 하는 물품들이지만 비대면으로 진행되어서 아쉽게 택배로 받게 되었습니다. 그래도 박스를 뜯는 순간만큼은 항상 즐겁습니다. 기대되기도 하구요. 신나서 얼른 열어보았더니 역시 네이버에서 보내주신 구성품답게 상당히 알차게 들어있었습니다! 가장 위쪽엔 참가해 주셔서 감사하다는 메시지와 함께 당일에 건강한 모습으로 뵙겠다고 쓰여있네요. 오픈클래스는 이미 끝났지만...ㅎㅎ 편지 밑에도 여러가지 기념품들이 들어있는데 사진상으론 잘 안보여서 물품들을 다 꺼내 보았습니다. 펼쳐 놓으니까 화면에 꽉 차네요 ㅎㅎ 구성품은.. 2020. 10. 18.
리팩토링 스터디 #3.5 - 내용 미리보기 추석 연휴와 한글날로 연휴를 보내고 리팩토링 스터디 시간이 다시 돌아왔습니다. 이번 회차에는 기본적인 리팩토링 기법들을 알아봅니다. 기능에 따라 정-반 구조로 이루어진 기법이 대부분이기 때문에 하나를 이해하면 다른 하나도 자연스럽게 이해가 됩니다. 처음부터 하나씩 살펴보겠습니다. 함수 추출하기 Extract Function 함수 추출하기는 가장 빈번하게 사용되는 리팩토링 기법입니다. 코드 블럭을 찾아 어떤 기능을 하고 있는지 파악한 다음, 독립된 하나의 함수로 추출하고 적절한 이름을 붙여주면 됩니다. 특히 이름을 붙여주는 부분은 아래에 나오는 기법들에 필수적으로 들어간다고 봐도 무방하니 모든 작업마다 염두해 두면 좋을 것 같습니다. 그렇다면 함수 추출하기는 언제 하는 것이 좋을까요? 가장 먼저 눈에 들어.. 2020. 10. 12.
react 프로젝트에 redux 적용하기 #2 지난 react 프로젝트에 redux 적용하기 #1에서는 리덕스가 적용되는 대략적인 구조를 만들었습니다. 그러나 앞으로 우리가 해야할 작업은 이것만으로 충분하지 않았습니다. 오늘은 비동기 작업을 위해 리덕스 청크(redux-thunk)를 이용하여 요청을 처리해보겠습니다. 리덕스 청크란 리덕스 미들웨어의 한 종류입니다. 간단한 동기 작업만이 가능한 리덕스에 비동기 작업이나, 웹 요청, 또는 저장소에 접근하는 복잡한 요청 등을 처리해주는 고마운 친구입니다. 우리는 오늘 이 고마운 친구와 함께 비동기 작업을 수행해 볼 예정입니다. 그럼 시작하겠습니다. 시작 우선 가장 문제가 되는 비동기 작업부터 처리해보겠습니다. 우리가 비동기 요청을 보냈을때의 상태를 구분해보면 세 가지가 있습니다. 1. 요청을 보내지 않았거.. 2020. 10. 2.