본문 바로가기
728x90
반응형

전체 글223

클린코드(Clean code) 17장 - 냄새와 휴리스틱 : 최종 정리 1. 클린코드에 대한 철학 1) 나쁜 코드가 나쁜 이유 - 생산성 저하 2) 보이스카우트 룰 기억하기: 수정전보다 수정후에 더 깨끗한 코드 좋은 코드는 생산성을 상승시킨다! 3) 창발적 설계에서 유의해야 할 사항 규칙에 극단적으로 심취하여 클래스/메서드를 과하게 쪼개지 않을 것 : 실용적 관점에서 타협하기 2. 공동 창작시의 매너 : 나와 동료를 위해 네이밍/ 함수/ 주석/ 포맷팅 시 '팀이 가지고 있는 컨벤션(약속)' 을 우선하여 개발 3. 객체 지향 패턴 1) 캡슐화 2) 어댑터 패턴: 외부 코드 호출시 우리 인터페이스대로 호출하기 위해 사용하는 패턴, 외부 코드와의 호환성을 위해 사용 3) 결합도는 높게, 응집도는 낮게 4) SOLID 원칙 - 하도 많이 인용해서 이제 지겨움 4. 오류 처리 1) .. 2022. 9. 29. 13:55
투자 수익 절세하는 방법 - 중개형 ISA : 서민형 대상자 추가 비과세 혜택받자 (한국투자증권 신청방법포함) 출근길에 지하철에서 뉴스레터 보다가 ISA 계좌라는 것에 대해 알게되었고... 물론 지금 주식장이 좋지 않고 들고 있는 주식도 돈 파쇄 수준이지만 (물론 잡주가 아니니.. 언젠가 오르겠지 믿고있다구) ISA 계좌에 '청년형' 이 별도로 있고 소득기준이 간당하여 올해가 아니면 가입이 불가능함을 알게됨 올해가 마지막 기회라고 생각하니 일단 죽이 되든 밥이 되든 움직여서 만들어놔야지 1. ISA (개인종합자산관리계좌 Individual Savings Account) 란 무엇인가? 계좌 하나에서 예/적금 펀드 : 국내주식형/채권형, 해외주식형/채권형, 국내/외 혼합형 파생결합증권 ETF/ETN/상장펀드 국내 상장 주식(유가증권 시장, 코스닥, 코넥스 상장 증권) 을 거래할 수 있고 비과세 혜택을 챙길 수 있음 .. 2022. 9. 28. 11:04
클린코드(Clean code) 15~16장 : 실제 라이브러리 분석 (JUnit, SerialDate) JUnit, SerialDate 같은 정말 많이 사용하는 라이브러리조차 작가가 여러 가지로 손대고 리팩토링하면서 좀 더 나은 결과물이 나옴을 확인하였음 변수 앞에 붙은 접두어를 제거한다. 의도를 명확히 표현하기 위해 조건문은 캡슐화한다. 즉, 조건문을 따로 메서드로 뽑아내고 적절한 이름을 짓는다. 중복되는 변수 이름을 수정해서 더욱 의미를 명확하게 표현한다. 조건문을 긍정문으로 반전시킨다. 함수 이름을 가독성 있게 수정한다. 수행하는 일이 다른 함수를 따로 분리한다. 오래된 주석 수정 enum을 독자적인 소스 파일로 이동 정적 변수, 정적 메서드를 새 클래스로 이동 변수 이름 변경 새 메서드를 생성해 메서드간 중복 제거 어떤 일을 해도 마찬가지겠지만, 타인의 코드를 비판하거나 / 내 코드를 비판하는 걸 .. 2022. 9. 27. 18:24
클린코드(Clean code) 14장 - 점진적인 개선 1. 코드가 나빠지고, 무언가 잘못되고 있음을 인지: 기능추가를 멈추고 그 상태에서 개선 -> 테스트 코드 작성 : 변경전후 결과가 같아야 함. 모든 테스트가 수정전 상태에서도 통과해야. -> 점진적 개선: 책임에 따라 클래스를 나누고, 코드를 이동하는 등의 개선을 수행 *개선이랍시고 구조를 크게 뒤집어 엎으면 망하는 지름길 아그래서 봇과장님이 저 그냥 이거 다시 갈아엎고 짜면 안돼요? 하면 말렸구나 2. IDE에서 사용하면 좋은 기능 - extract method - change signature: 메소드 파라미터 추가/삭제/변경 - rename - extract variable : 변수 추출 - extract field : 특정 값을 멤버변수로 설정하기 - extract constant : 상수로 추.. 2022. 9. 26. 18:11
클린코드(Clean code) 13장 - 동시성 1. 동시성 프로그래밍 : 어플리케이션을 효율적으로 실행하기 위해 멀티코어를 온전히 활용하도록 구현하는 방식. 서버(코어)를 효율적으로 사용하여, 처리량을 최대화하기 위한 기법. 하나만 주구장창 붙들고 있는 게 아닌, 대기중에 다른일 처리하고 온다든가 하는 것도 동시성의 구현. cf)병렬성: 서버를 늘려 처리량을 늘리는 것 동시성과 병렬성은 "어플리케이션"의 관점에서 (not 클라이언트) 생각할 것. 내 어플리케이션의 효율성을 높이고, 메모리 누수나 자원 낭비 되는 일이 없도록 신경써야 함. 2. 동시성 프로그래밍의 미신과 오해 1)동시성은 항상 성능을 높여준다 (X) : 대기 시간이 길어서 여러 스레드가 프로세서를 공유할 수 있거나, 여러 프로세서가 동시에 처리할 독립적 계산이 충분히 많은 경우에 한정.. 2022. 9. 25. 11:39
과학기술인공제회 (SEMA) 청년 과학기술인으뜸적금 - 아무도 모르지만 내가 가입조건에 해당되면 연복리 적금으로 목돈 만들 찬스 2020년 코로나 시대가 시작되고, 금리가 쭉쭉 빠져서 적금을 드나 예금을 드나 이자도 너무 노잼이던 시절 주식을 할 만큼 돈이 많은 것도 아니던 고기만두는 재태크 카페를 보다가 독특한 상품 소개글을 하나 보게 된다. 과학기술인공제회의 과학기술인 으뜸적금이 그것. 공무원이나 교사들이 공제회 넣는다는 얘긴 들어봤는데, 과학기술인도 이런 게 있었나? 흰 가운 입는 연구소 박사님들 모임 같은 건가? 하고 봤는데 아니 글쎄 사기업 재직자들도 가입이 된다지 뭐임? 과학기술인공제회 의 퇴직연금급여사업 및 적립형공제급여사업 가입회원 및 퇴직회원 공제회 회원기관 10년 재직 후 퇴직한자(~2023.4월까지 한시적용) 과학기술인공제회법 제6조 및 정관 제4조에 따른 일반회원 가입자격이 있는 사람 중 마지막 줄이 최근 새.. 2022. 9. 24. 14:29
교통비를 절약해보자: 알뜰교통카드 발급 후기 (우리 체크카드 선택한 이유) 0. 알뜰교통카드를 알아보게 된 사연 시작은... MBTI 확신의 J인 나, 9월 30일에 사전예약 오픈 예정인 아이폰 14프로를 구매하려는 계획을 세우고 있었다. 마침 3년 반 쓴 현재 휴대폰 배터리 성능 저하 + 용량 부족에다가 최근 술 먹다가 액정 깨뜨림까지 3단 콤보를 맞아 이제는 진짜 놓아 드려야 할 때가 임박했음을 직감했는데... 미쳐버린 킹달러 환율 때문에 기계 값이 너무 비싸네? 게다가 지금 쓰는 KT 선택약정 할인을 받고 있다지만 데이터가 택도 없이 부족하네? 그럼 알뜰폰을 알아볼까... 하다가 지금 쓰는 카드로는 알뜰폰으로 아무짝에도 할인이 되지 않음을 알아버렸고..? 카드를 리모델링해야지 하고 보다가 발견한 것 바로 알뜰교통카드 1. 알뜰교통카드란? 알뜰교통카드 사이트와 앱을 통해 자.. 2022. 9. 23. 22:46
클린코드(Clean code) 12장 - 창발성 0. 창발성 : 하위 계층에는 없는 특성이나 행동이 상위 계층/전체 구조에서 자발적으로 돌연히 나타나는 현상. emergence. ex) 개미들의 상호작용 => 개미집 1. 창발적 설계 by 켄트 백 1) 모든 테스트를 실행한다. 모든 테스트를 통과하는 시스템/예측 가능한 시스템을 만들어야 설계 품질이 높아지고, 결합도를 낮추고&응집도를 높일 수 있음 테스트가 안되는 시스템은 검증이 불가능하니 출시해서는 안됨. 2) 중복을 없앤다. 기존 코드 최대한 재활용 하기 (아 찔리는 코드 하나 생각남...) *Template method 패턴 : 알고리즘의 구조를 상위 클래스 메서드에서 정의하고, 하위 클래스에서 세부 알고리즘을 정의 3) 프로그래머의 의도를 표현한다. 이름 잘 짓기 함수/클래스 사이즈를 줄이기 .. 2022. 9. 22. 22:12
클린코드(Clean code) 11장 - 시스템 1. 관심사 분리 객체를 제작하고 의존성을 연결하는 준비과정과, 그 이후에 이어지는 런타임 로직을 분리 즉, 객체 생성과 사용 부분을 분리함. 프로그래머는 로직 구현에만 집중하고, 프레임워크에 객체 생성은 맡겨버리면 됨 2. 의존성 주입(Dependency injection) 객체 의존성은 DI 컨테이너에 맡길 것. 요청이 들어오면 필요한 객체의 인스턴스를 만들고 의존성 설정 (ex. 스프링 IoC) 의존성주입 방법: setter 메소드 / 생성자 인수 등 3. 횡단 관심분리(Cross cutting concerns) 비즈니스 로직, 로깅, 트랜잭션 관리, 보안 등 다양한 관심사가 여기저기 퍼져있으나, 어플리케이션 전반이 가지는 공통의 관심사들은 분리하여 처리하는 것이 효율적. 비즈니스 로직에만 집중하기. 2022. 9. 21. 23:07
728x90
반응형