반응형 전체 글1306 팩토리 메서드 패턴 (Factory Method) 🎈 팩토리 메서드 패턴(Factory Method Pattern) • 객체 생성 시 확장을 쉽게 하기 위한 설계 방법 강력한 결합 관계는 코드의 수정•변경을 어렵게 한다. • 객체 생성 동작을 별도 클래스로 분리하여 처리 또는 별도의 메서드를 호출하여 객체 생성 동작을 처리 • 객체 생성 처리를 하위(Sub) 클래스로 분리하여 캡슐화하는 패턴 • 새로운 객체를 추가할 때 기존 일반 함수 코드 분석 없이 (새로운 하위 클래스 정의) + (Factory 클래스 멤버 함수 추가) 하여 확장 가능 • 일반 클래스가 생성자 호출로 직접 객체 생성하지 않고 Factory(공장)에 위임하는 방식 • 조건에 따라 객체를 다르게 생성하고자 할 때 유용 • 생성 패턴에 해당된다. 💻 디자인 패턴(Design Pattern.. 2022. 7. 19. [클린코드] 형식 (Format) ✔️ 개념은 빈 행으로 분리 글에 문단이 있듯이 코드에도 빈 행으로 구분해주면 좋다. public List getFlaggedCells() { List flaggedCells = new ArrayList(); for (Cell cell : gameBoard) if (cell.isFlagged()) flaggedCells.add(cell); return flaggedCells; } 변수는 변수끼리, 로직은 로직끼리 적절한 행 구분은 가독성을 높여준다. public List getFlaggedCells() { List flaggedCells = new ArrayList(); for (Cell cell : gameBoard) { if (cell.isFlagged()) { flaggedCells.add(cell.. 2022. 7. 18. [클린코드] 함수 Function 클린 코드(Clean Code) 클린 코드(Clean Code)란? 💻 클린 코드 (Clean Code)? • 프로그래밍을 모르는 사람도 한눈에 읽히는 코드 (가독성) • 다른 사람이 수정하기 쉬운 코드 • 한 가지 일에 집중하는 코드 • 중복이 적은 코드 • 테스트가 zoosso.tistory.com ✔️ 작게 만들어라 ✔️ 한가지만 해라 → 내부에 다른 함수로 추출할 수 있는 section이 더 있는가? ✔️ 서술적인 이름 사용 (동사구 활용) ex) isOrderable(), hasAvailableProduct 예제 코드 static string renderPageWithSetupsAndTeardowns(PageData pageData, bool isSuite) { bool isTestPage = .. 2022. 7. 18. [클린코드] 주석 Comment Q) 주석은 많이 있을수록 좋은가? A) 아니오! 주석은 오래될수록 코드에서 멀어진다. 코드(Code)는 유지보수를 해도, 주석(Comment)도 함께 유지보수되기 어렵다. 주석 없이 코드만으로도 충분히 의미를 전달할 수 있다. // 직원에게 복지 혜택을 받을 자격이 있는지 검사한다. if ((emplotee.flags & HOURLY_FLAG) && (employee.age > 65) if 조건이 길고 어렵기 때문에 주석을 달아놓은 것이지만 사실 의미 있는 이름만으로도 충분하다. if (employee.isEligibleForFullBenefits()) 📌 [클린코드] 의미 있는 이름 2500; i++) { threadList.push_back(thread(WidgetBuilderThread, widg.. 2022. 7. 18. [클린코드] 의미 있는 이름 개발자가 자주 고민하는 것 중 "의미 있는 이름" 📌 프로그래머가 가장 힘들어 하는 것은? 프로그래머가 가장 힘들어 하는 것은? IT 혹은 SW 업계에 있다보면 가끔 "프로그래머가 가장 힘들어 하는 것"이 무엇일까? 물론 개인 역량, 역할에 따라 비중은 달라질 수 있지만 아래 항목들이지 않을까 생각이 든다. ① 이름 짓기 코 zoosso.tistory.com ✔️ 의도(존재 이유, 기능, 사용 방법)를 분명히 하라 ✔️ 검색하기 쉬운 이름 사용 (+ 자동완성 기능) ex) 긴 이름이 짧은 이름보다 검색하기 좋다. 예시 코드 vector getData() { vector ret_list; for (int* x : theList) { if (x[0] == 4) { ret_list.push_back(x); }.. 2022. 7. 17. 클린 코드(Clean Code)란? 💻 클린 코드 (Clean Code)? • 프로그래밍을 모르는 사람도 한눈에 읽히는 코드 (가독성) • 다른 사람이 수정하기 쉬운 코드 • 한 가지 일에 집중하는 코드 • 중복이 적은 코드 • 테스트가 존재하는 코드 • 유지보수가 쉬워진다. * 유명한 프로그래머들이 언급하는 항목들이다. 사실, 프로그래머 수 만큼 클린 코드 기준도 다양하다. 방 청소 기준이 개인마다 다른 것과 같다 🤔 구현 당시 최선이었지만 환경이 변하면서 더 이상 최선이 아닐 수 있다. A 환경에서 적용된 항목이 B 환경에서 맞지 않을 수 있다. 그럼에도 대다수가 끄덕이는 정도가 있다. 쌓여버린 Bad Smell 업무 생산성을 저하시킨다. 그렇기에 꾸준히 관심가지고 리팩토링해야 한다. 💻 왜? 클린 코드 작성이 어려울까? • 기존(Le.. 2022. 7. 17. [블로그 지수] Lighthouse 사이트 성능 측정 Lighthouse(라이트하우스) 란? 구글에서 개발한 웹 페이지 품질 개선을 위한 오픈 소스 형태의 자동화 도구 2020년 5월 19일 부터 Chrome 웹 브라우저 개발자 도구에서도 가능하게 되었다. How? [크롬 개발자 도구] 활성화 📌 단축키 F12 상단에 [Lighthouse] 항목 클릭 기기 선택 [데스크톱] or [모바일] 진단하면 아래와 같은 결과를 볼 수 있다. 블로그 특성상 검색 노출이 중요하기 때문에 해당 자료를 참고하면 좋을 것 같다. 예를 들어 [검색엔진 최적화] 부분에서 이미지 요소에 [alt] 속성이 필요하다고 한다. 📌 [Tistory] 이미지 alt 속성도 챙기자 [Tistory] 티스토리 포스팅시 이미지 alt 속성도 챙기자 티스토리에서는 포스팅할 때 [HTML 모드]가.. 2022. 7. 11. 💻 [Chrome] 여러 탭 임시 저장하여 나중에 열어보기 크롬(Chrome) 환경에서 작업하다보면 여러 탭을 띄워놓고 작업하는 경우가 많다. 주어진 시간에 내용을 다 볼 수 있다면 좋겠지만 열어둔 탭을 한번에 저장하여 정신사나운(?) 창들을 임시 정리할 수 있다. 📌 단축키: Ctrl + Shift + D 우측 상단에서 [북마크] - [모든 탭 북마크] 개인적으로는 북마크 폴더를 이용해서 "임시" 폴더에 모아두고 추후에 필터하기도 한다. 저장된 항목을 한번에 열어볼 수도 있다. 2022. 7. 10. 🏝️ [4박 5일] 나홀로 뚜벅이 제주 여행 지난 제주 겨울 여행이후 4개월만에 떠나는 제주 여행 [후기] 3박 4일 제주 여행 Again Jeju 🏝️ 3박 4일 일정으로 제주 여행을 다녀왔다. 이번에도 여러 장소를 방문하였는데, (개인적으로) 기억에 남는 장소를 기록하고자 한다. 🚶♂️" data-og-description="✔️ zoosso.tistory.com 나홀로 뚜벅이 Jeju 🏝️ #4박 5일 제주 서부 #제주 섬 여행 (차귀도 • 비양도) #게스트하우스 일자별 지출 현황 * 대중교통 이용 포함 X * 비용 절삭 및 더치페이 금액 (1인 기준) ** 여행 스타일에 따라 다르기에 참고자료로 권장 항목별 지출 현황 • 유동적인 일정 관리 가능 • 혼자서는 메뉴를 여러가지 시키기 어렵다. • 혼밥 Level is Low (흑돼지나 회 😭.. 2022. 6. 19. 상태 패턴 (State Pattern) 상태(State) 패턴이란? • 객체 내부 상태에 맞춰 스스로 행동을 변경하는 패턴 • 객체는 마치 자신의 클래스를 바꾸는 것처럼 보인다. • if-else와 같은 분기문으로 상태전이 하는 것을 해소한다. 기존 설계 가독성이 충분하다면 굳이 State 패턴을 적용할 필요 없다. • 각 상태에 해당하는 클래스를 설계한다. 상태를 취급하는 만큼 클래스 개수가 증가한다. • 디자인 패턴(Design Pattern) 중 행위패턴에 속한다. 💻 디자인 패턴(Design Pattern)이란? 👨💻 디자인 패턴(Design Pattern)이란? • SW 개발 방법 중에서도 구조적인 문제 해결에 목적을 둔다. • 알고리즘과 같이 특정 문제를 해결하는 Logic 형태보다는 특정 상황에 적용할 수 있 zoosso.tis.. 2022. 5. 27. 이전 1 ··· 16 17 18 19 20 21 22 ··· 131 다음 반응형