일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- MariaDB
- 도메인 주도 개발 시작하기
- 자바
- SQL쿡북
- 자바스터디
- 클린코드
- CleanCode
- 이팩티브 자바
- 알고리즘분석
- jpa
- 기술면접
- 이펙티브자바
- mysql
- 인프런김영한
- react
- DDD
- 네트워크
- 인프런백기선
- 자료구조
- aop
- vue.js
- AWS
- 자바예외
- 인덱스
- 이펙티브 자바
- 혼공SQL
- AWS RDS
- 알고리즘
- 스프링부트와AWS로혼자구현하는웹서비스
- java
- Today
- Total
목록전체 글 (272)
기록이 힘이다.
12.1 결과셋을 하나의 행으로 피벗하기 select sum(case when deptno=10 then 1 else 0 end) as deptno_10, sum(case when deptno=20 then 1 else 0 end) as deptno_20, sum(case when deptno=30 then 1 else 0 end) as deptno_30 from emp select deptno, case when deptno=10 then 1 else 0 end as deptno_10, case when deptno=20 then 1 else 0 end as deptno_20, case when deptno=30 then 1 else 0 end as deptno_30 from emp order by 1..
NFC 로 찍으면 그 ID 값에 따라 대출유무를 판단한다. ] API 토큰 값을 받아온다. https://www.notion.so/my-integrations 생성해서 복사하기 =⇒public이 아니면 본인의 컴퓨터에서만 적용가능 2. page/ database에 연결해준다. 3. database를 연결해본다. Retrieve a database (notion.com) 현재 기준 curl '' \\ -H 'Authorization: Bearer '"$NOTION_API_KEY"'' \\ -H 'Notion-Version: 2022-06-28' postman 이용 https://api.notion.com/v1/databases/ [ 내DB Id] Authorization에서 Bearer Token에 1번에..
검사 예외는 항상 따로따로 선언하고, 각 예외가 발생하는 상황을 자바독의 @throws 태그를 사용하여 정확히 문서화하자. 메서드가 던질수 있는 예외를 각각 @throws 태그로 문서화하되, 비검사 예외는 메서드 선언의 throws 목록에 넣지 말자. 검사냐 비검사냐에 따라 API 사용자가 해야 할 일이 달라지므로 이 둘을 확실히 구분해주는 게 좋다. 한 클래스에 정의된 많은 메서드가 같은 이유로 같은 예외를 던진다면 그 예외를 (각각의 메서드가 아닌) 클래스 설명에 추가하는 방법도 있다.
표준 예외를 재사용하면 얻는 게 많다. 그중 최고는 여러분의 API가 다른 사람이 익히고 사용하기 쉬워진다는 것이다. 가장 많이 재사용되는 예외는 IllegalArgumentException이다. NullpointerException, IndexOutOfBoundsException ConcurrentModificationException은 단일 스레드에서 사용하려고 설계한 객체를 여러 스레드가 동시에 수정하려 할 때 던진다. UnsupportedOperationException은 클라이언트가 요청한 동작을 대상 객체가 지원하지 않을 때 던진다. Exception, RuntimeException, Throwable, Error는 직접 재사용하지 말자.이 클래스들은 추상 클래스라고 생각하길 바란다. 이 예외..
리플렉션은 코어단에서 많이 사용을 한다. 객체를 사용할 때 사용해야 한다. 주의해서 사용하라는 것 같다. 리플랙션을 사용하면 임의의 클래스에 접근가능. 클래스의 Constructor, Method, Field 인스턴스를 가져올수 있음. 각각에 연결된 각 생성자 메서드 필드를 조작할 수 있다. Method.invoke는 어떤 클래스의 어떤 객체가 가진 어떤 메서드라도 호출할 수 있다. 단점! 컴파일타임 타입 검사가 주는 이점을 하나도 누릴 수 없다. 리플랙션으로 없는 메서드를 호출하면 런타임 오류가 발생함. 리플렉션을 이용하면 코드가 지저분하고 장황해진다. 성능이 떨어진다. 프레임워크 단에서 리플랙션을 사용하여 구현하는 로직들이 있음. 이들도 리플랙셔 사용을 지양하는 방향으로 진행되고있음. (단점이 명확하..
표준 라이브러리를 사용하면 그 코드를 작성한 전문가의 지식과 여러분보다 앞서 사용한 다른 프로그래머들의 경험을 활용할 수 있다. 핵심적인 일과 크게 관련 없는 문제를 해결하느라 시간을 허비하지 않아도 된다는 것이다. 따로 노력하지 않아도 성능이 지속해서 개선된다는 점이다. 기능이 점점 많아진다는 것이다. 여러분이 작성한 코드가 많은 사람에게 낯익은 코드가 된다. 더 읽기 좋고, 유지보수하기 좋고, 재활용하기 쉬운 코드가 된다. 메이저 릴리스마다 주목할 만한 수많은 기능이 라이브러리에 추가된다. 자바 프로그래머라면 적어도 java.lang, java.util, java.io와 그 하위 패키지들에는 익숙해져야 한다. 컬렉션 프레임워크와 스트림 라이브러리, java.util.concurrent의 동시성 기능도..
아이템37 ordinal 인덱싱 대신 EnumMap을 사용하라 class Plant { enum LifeCycle { ANNUAL, PERENNIAL, BIENNIAL } final String name; final LifeCycle lifeCycle; Plant(String name, LifeCycle lifeCycle) { this.name = name; this.lifeCycle = lifeCycle; } @Override public String toString() { return name; } public static void main(String[] args) { Plant[] garden = { new Plant("바질", LifeCycle.ANNUAL), new Plant("캐러웨이", L..