분류 전체보기 (150) 썸네일형 리스트형 [요약] 3. 함수 1. 함수는 작게 만들어라 1.1 작은 함수의 정의 오직 하나의 일만 하는 함수 1.2 어떻게 작게 만들까? A. 객체지향 생활체조 원칙 1번과 2번을 적용한다. 1) 한 메소드에 오직 한 개의 들여쓰기만 한다 2) else 키워드를 쓰지 않는다. B. 함수당 추상화 수준은 하나로 - 비슷한 추상화 수준의 함수끼리 한 함수내에서 사용한다. C. 내려가기 규칙: 위에서 아래로 코드 읽기 추상화 레벨이 다양할 경우, (1) 추상화단계가 높은 함수가 먼저 정의되고 (2) 페이지의 아래로 내려갈 수록 추상화 단계가 낮은 함수가 나온다. /* 추상화 3단계*/ String renderPage() { renderMenu(); // 추상화 3단계 내부에서는 2단계 함수만 사용한다. 1단계는 사용하지 않는다. rend.. [요약] 2.의미 있는 이름 1. 올바른 이름이란 변수명/클래스명/함수명은 아래의 질문에 답할 수 있어야 한다. - 변수(클래스,함수)의 존재 이유 - 수행 기능 - 사용 방법 역할이 제대로 명시된 이름과 그렇지 않은 이름을 비교해보자. /*bad*/ ind day; // 경과 시간 (단위, 날짜) /*good*/ int daySinceCreation; 위 코드의 bad는 주석이 있기 때문에 괜찮지 않냐고 물을 수도 있다. 하지만 day를 여러 곳에서 사용한다면 어떨까. 유지보수를 하는 나 같은 사람은 최초 작성자의 의도를 읽기 위해 매번 주석이 정의된 곳으로 스크롤을 왔다갔다할 것이다. 사실 내가 짠 과거의 코드도 저런 모습이 많다.. 반성하자 내 자신 2. 나쁜 이름과 좋은 이름의 예시 2.1 이름에 포함된 자료형 -> Bad .. [요약] 1장. 깨끗한 코드 1. 본문 요약 르블랑의 법칙 -나중에 리팩토링한다는 말은 새빨간 거짓말이다. 개발 기간에 깨끗한 코드를 만들어내자. 좋은 개발자(=시니어개발자)란 - 기획자, PM이 납득할 수 있도록 현재 시스템을 설명하고, 개발 초기에 꼼꼼하게 설계하는 사람. 관리자가 나쁜 코드의 위험을 인지하도록 설득할 것 깨끗한 코드란 - 한가지 일을 제대로 한다. 의존성을 낮추어야 함 - 단위테스트, 인수 테스트 존재 - 의미 있는 이름 - 중복을 제거한다. - (내 생각) 1) 테스트 케이스는 반드시 필요하다. 아무리 주석을 자세히 적어놔도, input값과 output을 명확히 제공하는 테스트 케이스를 읽는 것이 훨씬 효율적이다. 2) 의미 있는 이름을 짓자. frmPop() 이런 함수를 최근 유지보수중인 코드에서 봤다. f.. 각 상황에 보면 좋을 책/영화 사랑하는 마음을 되찾고 싶을 때 - PK (영화) ''전화 번호가 잘못 됐나봐. 사제는 전화를 걸지만 가짜 신이 전화를 받는 것 같아" "까마귀 소리, 경적소리, 그리고 네가 시를 외우는 소리도 조금 녹음되어있어" 넌 안된다는 소리 속에서 나를 믿고 해내고 싶을 때 - 당갈 (영화) "기타는 금메달을 딸 수 있습니다." 번아웃이 왔을 때 - 리틀포레스트 (영화) 내가 할 수 있을까 염려될 때, 서두를 때 - 나빌레라 (웹툰) db: 데이터 물리 삭제 VS 논리 삭제 물리 삭제 DELETE 명령어를 사용하여 데이터 직접 삭제 하는 것 논리 삭제 테이블에 삭제 플래그 두어서 행을 삭제하는 대신, SQL의 업데이트 명령어를 사용. 예. UPDATE USER_ORDER SET DELETED = 'Y' WHERE USER_ID = 'jojo' 레퍼런스 1. https://gmlwjd9405.github.io/2019/05/13/db-sql-insert-update-delete.html 전자정부의 예외처리 방법 context-aspsect.xml **service.impl.* **service.impl.* 관련된 개념 - AOP - Bean 질문 SQL Excetion이 발생하게되면 impl단에서 error를 캐치. 로그를 뿌리는걸까. 그러면 throw Exception 안해줘도 될 것 같은데.. 레퍼런스 1. context-aspect 분석 https://m.blog.naver.com/PostView.naver?blogId=1_soft&logNo=220706819718&targetKeyword=&targetRecommendationCode=1 [자바웹프로그래밍 NextStep.7장]DB를 활용해 데이터를 영구적으로 저장하기 본 포스팅은 사내에서 진행하는 '자바웹프로그래밍 nextStep 7장' 스터디 내용을 정리한 내용입니다. 어플리케이션 구동시, DB 초기화하는법 (228p) 서블릿컨테이너는 @WebListener 어노테이션이 있는 클래스를 찾는다. 이 어노테이션이 있으면 ServeletContextListener를 구현했다는 뜻이기 때문이다. 구현체내 contextInitalized는 웹 어플리케이션 전체에 필요한 초기화 작업을 한다. (예. DB 생성) 이는 서블릿 초기화 보다 이전에 이루어진다. @WebListener public class ContextLoaderListener implements ServletContextListener { private static final Logger logger = Logg.. NextStep 온라인 코드리뷰 1단계 정리 1. 저장소의 많은 브랜치에서 하나의 브랜치(=자신이 사용할 브랜치)만 클론 git clone -b (본인 아이디) --single-branch https://github/(본인 아이디)/(저장소 아이디) ex. git clone -b JoyDaheeCha --single-branch https://github/joydaheecha/java-racing-car 2. 로컬에 생성된 브랜치 확인 git branch -a 3. 로컬에 브랜치 만들기 git checkout -b (브랜치명) ex) git checkout -b step1 이전 1 ··· 4 5 6 7 8 9 10 ··· 19 다음