🧐 오늘의 RSS Feed
모든 내용의 출처는 각 항목의 제목에 있습니다
Rest API vs. GraphQL
Rest API | GraphQL |
axios | apollo-client |
post, put, delete, get | mutation, Query |
axios(rest-api) import axios from = 'axios' const result = axios.pot(api 이름) |
apollo-client(graphql-api) import {useMutation, useQuery} form @appllo/client const result = useMutation(api 이름) |
JPA
객체 관계 매핑, OMR 표준기술. 하이버네이트 개발자 참여로 완성된 가장 최근 표준 기술.
개발자가 직접 JDBC API 설계 관리 필요없이 객체만 OMR에 저장하면, DB와 연결하여 관리를 대신해준다.
java 컬렉션처럼 DB를 탐색하고, 별도 DAO없이도 필요한 명령을 수행할 수 있게 된다.
동일한 트랜잭션에서 조회한 엔티티는 같음을 보장한다.
크고 복잡한 Query는 속도를 위해 튜닝이 필요하므로 결국 SQL문을 써야 할 수도 있다.
IP와 포트번호
네트워크 통신을 위한 주소. IPv4, IPv6
입력된 IP주소에서 포트번호에 해당하는 서버 프로그램을 사용자에게 보여준다.
Spring 변경 감지와 병합
준영속 엔티티는 영속성 컨텍스트가 관리하지 않는 엔티티로 JPA가 관리를 안한다는 문제가 있다.
이를 해결하기 위해 변경 감지 기능을 사용한다거나 병합을 사용한다.
setter를 이용하면 감지가 어렵다.
단축 URL 서버구조
단축 URL을 생성하기 위해 hash funtion을 이용한다. hash 값은 리다이렉션을 위해 long URL로 매핑되어 한다.
BASE62 Encording
301 리다이렉션: 요청받은 URL을 영구적으로 long URL로 정보를 캐싱하고 이후에는 바로 long URL로 리다이렉트한다.
302 리다이렉션: 항상 URL shortner server로 요청하므로 client 요청을 트래킹할 수 있다.
자바 컬렉션 프레임워크
- List: ArrayList, Stack, Vector, LinkedList, CopyOnWriteArrayList
- Set: HashSet, TreeSet, LinkedHashSet, CopyOnWriteArraySet
- Map: HashMap, HashTable, ConcurentHashMap, TreeMap, LinkedHashMap
- Queue: BlockingQueue, ConcurrentLinkedQueue
HashMap은 null key 값을 주면 0 해시버켓을 찾아간다. 반면, HashTable은 null key나 value 값을 허용하지 않는다.
동기화 컬렉션 클래스의 다중연산문제
반복문에서 모든 스레드가 대기 상태에 들어간다. 즉, 여러 스레드의 동시 작업을 다 막아버린다.
var, let, const
var로 선언한 변수는 호이스팅시 undefined로 변수를 초기화한다. 하지만 let, const로 선언한 변수의 경우 호이스팅시 초기화하지 않는다.
let, const는 블록 레벨 스코프를 따른다.호이스팅: JS에서 함수 실행전 함수 선언에 대한 메모리부터 할당하는 것.var는 블록 스코프에서 작동하지 않기 때문에 다른 곳에서 선언된 변수와 중복되어 작동하기도 하고, 호이스팅 때문에 선언이 먼저 되어 선언을 하기도 전에 호출해도 undefined가 출력된다. 따라서 let, const를 쓰자.
스프링 AOP
횡단 관심사인 부가 기능들을 한 곳에서 관리하도록 @Aspect를 사용한다. OOP를 보조하는 기능이다.
AspectJ 프레임워크
1. 컴파일시에 로직에 AspectJ 모듈을 이용해 부가기능을 추가하는 것을 위빙(Weaving)이라고 한다.
2. 클래스 로딩 시점에 부가가기능이 추가되는 경우에도 AspectJ를 직접 사용해야 한다.
3. 런타임 시점에 부가기능을 추가하는 것은 스프링 AOP에서도 사용된다.
AOP 프록시: AOP 기능을 구현하기 위해 만든 프록시 객체, 스프링에서 AOP 프록시는 JDK 동적 프록시 또는 CGLIB 프록시이다.
✅ 확인해볼 사항
- Domain은 변경되면 안된다는 규칙 하에 별도의 DTO 클래스를 둬서 개발을 진행해왔는데...
다른 사람 Feed를 보니 그냥 Domain으로 다 해결해버려서 혼동이 왔다. - custom annotation 만들어보기
'CS' 카테고리의 다른 글
[실용주의 프로그래머] 6장. 동시성 (0) | 2022.03.30 |
---|---|
[실용주의 프로그래머] Mission 2 - 연습문제 23번 (0) | 2022.03.27 |
[실용주의 프로그래머] 5장. 구부러지거나 부러지거나 (0) | 2022.03.24 |
[실용주의 프로그래머] 4장. 실용주의 편집증 (0) | 2022.03.23 |
[실용주의 프로그래머] 3장. 기본적인 도구 (0) | 2022.03.22 |
- LifecycleException
- 개발도서
- 기술블로그
- EC2
- JIRA
- jdbc
- filezila
- 실용주의프로그래머
- java
- 오늘의코딩
- putty
- spring
- ubuntu
- AWS
- git연동
- 정보처리기사 필기
- 정보처리기사
- 웹페이지만들기
- 호스팅영역
- gradle
- 노마드코더
- 북클럽
- 배포
- 정보처리기사 실기
- IT 5분 잡학사전
- 독서후기
- gradle build
- SQLD
- 노개북
- intellij
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |