이펙티브 자바 Effective Java 2/E국내도서저자 : 조슈아 블로크(Joshua Bloch) / 이병준역출판 : 인사이트 2014.09.01상세보기 클래스를 정의할 때 클래스에 public으로 선언된 정적 팩토리 메서드(static factory method) 를 추가하는 것을 고려해본다. public static Boolean valueOf (boolean b) { return b ? Boolean.TRUE : Boolean.FALSE; }장점1) 생성자와 달리 정적 팩터리 메서드에는 이름(name)이 있다. - 가독성에 도움이 된다. ex) 소수일 가능성이 높은 BigInteger 객체를 생성하는 생성자 BigInteger(int, int, Random) -> BigInteger.probab..
1. 배포를 하기 위해 Project를 build 하여 war 파일을 준비. => Script 를 작성해서 ./gradlew build -> docker build -> docker push 까지 한번에 해주면 편하다. => docker를 push 할 때는 항상 tag가 붙어있어야 한다. 123456789#/bin/sh ./gradlew build docker build -t webserver . docker tag webserver thsdndqo00/webserver docker push thsdndqo00/webservercs => docker build 에 사용되는 Dockerfile 은 다음과 같다.1234567From tomcat:8-jre8 RUN rm -rf /usr/local/tomcat..
코드만이 자기가 하는 일을 진실되게 말한다. 진실은 코드다 주석은 나쁜 코드를 보완하지 못한다 * 주석을 달아야 겠다! (X) -> 코드를 정리해야 한다 (O)* 자신이 저지른 난장판을 주석으로 설명하려 애쓰는 대신에 그 난장판을 치우는 데 시간을 보내라 코드로 의도를 표현하라! * 네이밍을 통해 주석으로 달려는 설명을 함수/변수에 녹여낼 수 있다! 좋은 주석 * 법적인 주석* 정보를 제공하는 주석//code위에 제시한 주석은 코드에서 사용한 정규표현식이 시각과 날짜를 뜻한다고 설명한다.하지만 시각과 날짜를 변환하는 클래스를 만들어 코드를 옮겨주면 주석이 필요 없이 더 깔끔하다.* 의도를 설명하는 주석구현을 이해하게 도와주는 선을 넘어 결정에 깔린 의도까지 설명한다.//code저자의 의도가 분명히 드러나..
AWS RDS 를 사용하는 방법도 있지만 Mysql 을 인스턴스에 구축하여 사용해보려한다. 1. AWS 에 접속 후 Mysql 설치 = sudo yum install mysql-server 2. /etc/my.cnf 에서 bind-address 주석 처리 3. AWS console 에서 security group의 inbound 설정 변경 = 3306 포트를 외부에 0.0.0.0/0 에게 열어준다 (anywhere) 4. Mysql 계정 생성 및 권한 부여 = mysql> create user ojt_venice@% identified by 'venice'; (외부에서 접속 가능) = mysql> create user ojt_venice@localhost identified by 'venice'; (내부..
작게 만들어라! * 블록 (if , else, while ) 은 한 줄이어야 한다. 따라서 함수내의 들여쓰기는 1단이나 2단을 넘어가면 안된다. 한가지만 해라! * 지정된 함수 이름 아래에서 추상화 수준이 하나인 단계만 수행한다면 그 함수는 한 가지작업만 한다.* 단순히 다른 표현이 아니라 의미 있는 이름으로 다른 함수를 추출할 수 있다면 그 함수는 여러 작업을 하는 셈이다. Switch 문 * Switch 문은 한가지 작업만 하도록 만들기 어렵다. 즉 Switch 문은 N가지 일을 처리한다. 다형성을 이용하면 저 차원 클래스에 숨기고 절대로 반복하지 않을 수 있다. 123456789101112public Money calculatePay(Employee e) throws InvalidEmployeeTy..
- Total
- Today
- Yesterday
- notify()
- reactor
- Seperate Chaining
- referencedColumnName
- GlobalFilter
- router
- DyanomoDB
- Lazy
- mariadb-connector-j
- wait()
- aurora
- ResultSet
- mariada-connector
- HashMap
- reative
- notifyAll()
- RouteDefinition
- N+1
- msyql-connector-java
- Flux
- getBoolean
- ConcurrentHashMap
- AbstractMethodError
- circurit breaker
- RoutePredication
- spring cloud gateway
- custom config data convertion
- dynamodb
- MariaDB
- rate limit
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |