프로젝트에 작성된 통합 테스트들이 개별적으로 동작할 때는 아무 문제가 발생하지 않았었는데, Gradle Test를 통해 전체적으로 진행하니 몇몇 문제가 발생하게 되었다. BUG! JdbcSQLSyntaxErrorException: Table "POST" already exists;... [42101-200] Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'postController' defined in file [C:\Users\serrl\Desktop\Mentoring\Somaeja\build\classes\java\main\com\somaeja\post\co..
7주 차 시작! package 키워드 자바의 패키지는 비슷한 성격의 자바 클래스들을 모아 놓은 자바의 디렉터리를 말한다. 크게는 built-in package 와 custom package로 구분할 수 있다. package 키워드는 모든 클래스 파일에 최상단에 존재하여야 하고, 하나의 소스만 존재해야 한다. Built-in package? (내장 패키지) java, lang, javax, net, io, util, math... 등 Java API에 포함된 모든 패키지들을 말한다. Custom package? (사용자 정의 패키지) 사용자(개발자)가 정의한 패키지를 말한다. Sub package? (하위 패키지) 어떤 package 내부에 존재하는 package를 Sub package라고 한다. 이는 하..
Proxy Pattern? Proxy Pattern? 실제 비즈니스 로직과 그 외의 코드를 분리시키는 역할을 수행하는 객체를 만드는 패턴이다. -> 실제로 로직을 수행하는 객체의 인터페이스 역할을 하게된다. 객체를 호출하는 지점에서 프록시 객체를 호출하여 부가적인 코드를 수행한 뒤 참조 변수를 통해 실제 서비스 객체를 호출한다. 클라이언트는 프록시를 통해 서비스 객체 기능을 사용하기에 접근 권한 부가기능 리턴 값 변경 로깅 트랜잭션 등 이러한 기능을 추가 할 수 있다. 즉 서비스 객체의 SRP를 해치지 않고 프록시를 통해 책임을 추가할 수 있다. 해당 Pattern의 특징 프록시 객체는 실제 서비스 객체와 같은 이름의 메서드를 구현한다. 프록시 객체는 합성을 통해 서비스 객체에 대한 참조 변수를 가진다...
외부, 다른 도메인의 API를 통해 데이터를 제공받기 위해 사용할 수 있는 인터페이스를 조사해보았다. RestTemplate? Spring에서 제공하는 HTTP API 호출 시 사용할 수 있는 인터페이스이다. 멀티스레드 환경에서 안전하며 여러 기능을 지원한다. 내부적으로 하나의 요청에 하나의 쓰레드를 생성하여 동작시키는 Java Servlet API를 사용한다. 이는 각각 스레드가 일정량의 메모리와 CPU주기를 사용하고, 응답을 받을 때까지 스레드가 차단되는 동기화 모델이다. 비동기 방식의 동작을 제공하는 AsysncRestTemplate 도 있지만, WebClient 라는 인터페이스가 생겨남으로써 최적화된, 최신의 기술을 제공하기에 필요성을 잃어 deprecated 되었고, RestTemplate 은 ..
물리 계층의 역할과 랜 카드의 구조 전기 신호 0과 1로 이루어진 이진 데이터를 전기 신호로 변환하기 위하여서 사용되는 계층은 물리 계층이다. 아날로그 신호 물결 모양을 그리는 신호를 말하며 전화 회선이나 라디오 방송에 사용되는 신호이다. 랜 카드 송신하여야할 데이터를 전기 신호로 변환하며, 전기 데이터를 이진 데이터로 변환하는 장치이다. 케이블의 종류와 구조 전송 매체 네트워크 구조에서 전기로 변환된 데이터가 흐르는 물리적인 선로를 말한다. 트위스트 페어 케이블 ( LAN Cable ) 선로 내부에 가닥들을 꼬아놓은 것을 말한다. UTP 케이블 구리 선 여덟 개를 두 개씩 꼬아 만든 네 쌍의 전선으로 실드로 보호되어 있지 않은 케이블이다. 실드 금속 호일이나 금속의 매듭과 같은 것으로 외부에서 발생하는..
프로토콜 Protocol 네트워크에서 통신하기 위한 일종의 규약, 규칙을 말한다. 데이터를 전송하는 과정에 있어서 규정된 독립적인 규칙을 거쳐야만 한다. OSI 모델과 TCP/IP 모델 OSI 모델 네트워크 구조에 대한 표준 규격 중 하나로 컴퓨터 내부에서 벌어지는 일들을 각각의 계층으로 분리한 모델을 말한다. 응용, 표현, 세션, 전송, 네트워크, 데이터 링크, 물리 계층 Application Layer : 응용 계층 (7) 이메일, 파일 전송, 웹 사이트 조회 등 Application과 관련된 서비스를 제공한다. Presentation Layer : 표현 계층 (6) 문자 코드, 압축, 암호화 등의 데이터를 변환한다. Session Layer : 세션 계층 (5) 세션 체결, 통신 방식을 결정한다. ..
자바 상속의 특징 OOP 이전의 방식 이전 패러다임에서 코드를 재사용하는 방법은 복사한 후 로직 인자에 맞게 수정하는 방식이었다. 이후 기존 로직을 변경해야 할 때, 두 개의 코드다 변경해야 되는 것도 문제고, 하나의 코드를 수정하였다고 하여서 다른 코드를 그렇게 수정하면 된다는 보장이 존재하지 않는다. 즉 유지보수에 취약한 코드가 작성, 양산되는 것이다. 새롭게 등장한 OOP 패러다임에서는 이러한 부분을 해결하기 위해 도입한 방식이 상속이다. 상속이란? 기반이 되는 상위 클래스의 특성을 하위 클래스에게 적용하고, 거기에 더해 필요한 특성을 추가, 확장하는 방식을 말한다. 상속의 목적은 기존 기능의 확장과 코드의 재사용이다. 상위 클래스? 어떠한 속성과 코드를 (하위 클래스들에게) 제공하는 클래스를 말한..
네트워크의 구조 디바이스(Node)들이 연결되어 통신을 통하여 상호 작용하는 링크들의 구성을 네트워크라고 한다. 해당 네트워크의 목적에 따라서 여러 명칭으로 불리게 된다. Packet Network를 통하여 전송되는 데이터의 단위를 말한다. 하나의 큰 데이터를 보내는 것은 네트워크의 대역폭을 많이 점유함으로 흐름을 막을 위험이 있다. 네트워크의 대역폭? 일정시간 동안 네트워크로 전송할 수 있는 비트 수에 의해 결정된다. 인터넷 TCP/IP 프로토콜을 사용하는 세계 최대 규모의 네트워크를 말한다. 서로 연결하여 정보를 교환할 수 있도록 하나의 거대한 컴퓨터 통신망이다. 추가 내용 (내가 추가한 요소) 네트워크의 망 구성 방식 네트워크의 구조를 Network topology라고 하며, 공통 구조들을 종합하여..
클래스란 무엇일까? 클래스는 어떠한 객체들에 대한 분류이다. 분류, 집합, 같은 속성과 기능을 가진 객체들을 총칭하는 개념이다. 클래스는 해당 객체가 무엇인지 판단할 수 있는 일종의 식별 타입이 된다. 클래스의 구성요소 변수 : 클래스의 Scope = { } 안에서 존재하는 변수를 말한다. 객체 변수 : 접근 제어자와 변수 타입, 변수 명을 가지는 일반적인 상태 변수를 말한다. 해당 변수는 클래스 정보에서 초기화되지 않고, 해당 타입을 가지는, 상속받은 객체가 생성되었을 때 Scope에 맞게 가시 된다. (공유된다) 클래스 변수 : 위의 요소를 가지면서, static 이 작성된 상태 변수를 말한다. 클래스가 로드되는 시점에 Class 정보가 저장되는 영역에서 해당 정보가 등록, 초기화 되기 때문에 이러한..
각각의 리소스를 분류하기 위해 모든 데이터는 그것만의 표준화된 이름을 가지고 있다. (식별 값) 책의 ISBN 번호 버스의 노선 번호 은행 계좌의 번호 사람의 주민등록번호 등 리소스 RFC 2396 - Uniform Resource Identifiers (URI): Generic Syntax 모든 리소스가 일종의 표준 이름을 준수하기에 식별 값을 기준으로 쉽게 공유하고 접근할 수 있다. URL은 인터넷의 리소스를 가리키는 표준이름이다. 인터넷의 리소스 탐색하기 URL은 리소스의 위치를 가리키며, 이것을 이용해 리소스를 찾고 사용하며 공유할 수 있다. 사용자는 브라우저에 URL을 입력하고 브라우저는 화면 뒤에서 사용자가 원하는 리소스를 얻기 위해 적절한 프로토콜을 사용하여 메세지를 전송한다. URL 은 통..
- Total
- Today
- Yesterday
- RPC
- spring
- hypermedia
- 근황
- lambda
- 게으른개발자컨퍼런스
- 게으른 개발자 컨퍼런스
- Switch
- URI
- URN
- 소비자 관점의 api 설계 패턴과 사례 훑어보기
- Local Cache
- cglib
- java
- JDK Dynamic Proxy
- spring AOP
- configuration
- mybatis
- rabbitmq
- Global Cache
- AMQP
- Url
- HTTP
- Distributed Cache
- JPA
- Cache Design
- Data Locality
- THP
- JVM
- RESTful
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |