til 69

TIL 221025

# NGINX 로컬의 conf파일과 Docker Container환경에서의 conf파일 dockercompose.yml 파일을 실행할 때, [nginx conf파일이 위치한 로컬 경로]:[도커 컨테이너 환경에서 conf파일이 위치할 경로]를 작성한다. 이 conf 파일들이 잘 매칭되어야 nginx가 정상기동되며, 에러가 났을 때의 체크리스트는, 1. nginx conf파일이 위치한 로컬 경로에 conf파일이 제대로 있는지? 2. 도커 컨테이너 환경에서 conf파일이 위치할 경로에 제대로 conf파일이 들어갔는지? 3. (정확하지 않음) 위의 두 조건을 충족했음에도 에러가 난다면, 로컬에서 conf파일의 경로와 Log파일의 경로를 같은 곳으로 잡아보자. 그래도 안 된다면 도커 컨테이너 환경에서의 경로도 c..

TIL 2022.10.26

TIL 221006 더 깊이 고민해보아야 할 문제들

# DI를 쓰는 이유를 구체적으로! A, B, C 클래스가 있다고 가정해보자. new A(new B); 이런식으로 A 클래스에서 의존 객체를 B를 참조하여 직접 생성하는 방식을 사용하였을 때, test1. class : new A(new B); test2. class : new A(new B); test3. class : new A(new B); 가 된다. 여기서 만약 A가 B가아닌 C를 참조해야하는 상황이 오면, test1. class : new A(new C); test2. class : new A(new C); test3. class : new A(new C); 로 모두 고쳐주어야 하는 불상사가 발생한다. 여기서 DI는 의존 객체를 외부로부터 받아오기 때문에, A는 B를 참고한다 라는 파일이 있다면..

TIL 2022.10.06

TIL 221004

# OSI 모델 중 '네트워크 계층'의 기술 '데이터링크 곛계층'에서는 이더넷 규칙을 기반으로 데이터의 전송을 담당한다. 이 규칙에 따라 같은 네트워크에 있는 컴퓨로는 데이터를 전송할 수 있지만, 인터넷이나 다른 네트워크로는 데이터를 전송할 수 없다. 이럴 때 네트워크 간의 통신 가능하게 하는 것이 네트워크 계층의 역할이며, '라우터'라는 장비가 필요하다. #라우터를 통한 네트워크간의 통신 라우터는 데이터의 목적지가 정해지면 해당 목적지까지 어떤 경로로 가는것이 좋은지 아려주는 기능을 하는데, 데이터를 보내려는 상대가 어디에 있는지 모르면 라우터도 목적지까지의 경로를 알려주지 못한다. 이 때, 네트워크를 식별할 수 있는 근거가 되는것이 바로 'IP주소'이다. #IP주소 랜에서는 MAC주소만으로도 통신할 ..

TIL 2022.10.04

TIL 221003 개인프로젝트 queryDsl 트러블슈팅

# queryDsl 빌드 후 중복된 클래스 에러 queryDsl 그래들 빌드 후 어플리케이션 실행 시, 중복된 클래스가 존재한다는 에러이다. 구글링을 통해 발견한 해결법은 다음과 같다. 물론 이 방법으로 해결한 케이스도 있겠지만.. 나의 경우에는 문제가 해결되지 않았다. queryDsl 그래들 설정에 관한글을 이것저것 읽으며 설정 코드들을 여기저기서 가져온 것이 문제였는데.. buildscript { ext { queryDslVersion = "5.0.0" } } plugins { id 'org.springframework.boot' version '2.7.4' id 'io.spring.dependency-management' version '1.0.14.RELEASE' id "com.ewerk.grad..

TIL 2022.10.03

TIL 221001 개인프로젝트 SQL 쿼리

# 최솟값, 최댓값, 평균 구하기 count()와 같이, min(), max(), avg()로 사용한다. Alias를 사용해서 별칭을 붙여줄 수 있다. ex) count(*) as cnt # Group by, Order by group by는 ' 중복을 제거하는 용도 ' 쿼리가 실행되는 순서 : from → group by → select → order by # 그룹, 오더를 where와 같이 쓰기 select payment_method, count(*) from orders where email like '%naver.com' and course_title = '앱개발 종합반' group by payment_method like 까지 섞어쓰는 법이다. # 어느것을 기준으로 order by를 할 것인가?..

TIL 2022.10.01

220930 TIL 개인프로젝트 SQL쿼리 입문

# 용어 정리 : 데이터베이스 안에 '테이블'이 여러개 있다. ( 참고로 테이블을 보는 쿼리는 show tables ) 테이블 안에 '필드'가 여러개 존재하며(Spring에서 @Column을 달아주는), 데이터가 담긴 한 줄 한 줄을 'row'라고 한다. 1# orders 테이블에서 '웹개발 종합반'이 아닌 값을 가져올 때 select * from orders where course_title != "웹개발 종합반"; 2# orders 테이블에서 7월 13일, 7월 14일의 주문데이터만 가져올 때 select * from orders where created_at between "2020-07-13" and "2020-07-15"; 3# checkins 테이블에서 week 필드의 1, 3주차 데이터만 가..

TIL 2022.09.30

TIL 220929

#jpa 더티체킹 Dirty란 상태의 변화가 생긴 것. 즉, Dirty Checking이란 상태 변경 검사 이다. JPA에서는 트랜잭션이 끝나는 시점에 변화가 있는 모든 엔티티 객체를 데이터베이스에 자동으로 반영. ●더티 체킹(Dirty Checking)이란? JPA는 엔티티 매니저가 엔티티를 저장/조회/수정/삭제를 합니다. 그런데 엔티티 매니저의 메서드를 찾아보면, 저장(persist)/조회(find)/수정(?)/삭제(delete)로 수정에 해당하는 메서드가 없습니다. 대신에 수정(?)에 해당하는 더티 체킹(Dirty Checking)을 지원합니다. 더티 체킹은 Transaction 안에서 엔티티의 변경이 일어나면, 변경 내용을 자동으로 데이터베이스에 반영하는 JPA 특징입니다. *데이터베이스에 변경 ..

TIL 2022.09.29

TIL 220928

#그래프 탐색 알고리즘, BFS/DFS BFS, DFS 두가지 모두 그래프를 탐색하는 방법입니다. 그래프란, 정점(node)과 그 정점을 연결하는 간선(edge)으로 이루어진 자료구조의 일종을 말하며, 그래프를 탐색한다는 것은 하나의 정점으로부터 시작하여 차례대로 모든 정점들을 한 번씩 방문하는 것을 말합니다. ●DFS 깊이 우선 탐색 (Depth-First Search) 루트 노드(혹은 다른 임의의 노드)에서 시작해서 다음 분기로 넘어가기 전에 해당 분기를 완벽하게 탐색하는 방식을 말합니다. 예를 들어, 미로찾기를 할 때 최대한 한 방향으로 갈 수 있을 때까지 쭉 가다가 더 이상 갈 수 없게 되면 다시 가장 가까운 갈림길로 돌아와서 그 갈림길부터 다시 다른 방향으로 탐색을 진행하는 것이 깊이 우선 탐색..

TIL 2022.09.29

TIL 220927

# MAC 주소 Media Access Control Address (물리 주소)의 약어. 제조할 때 새겨지기 때문에 물리 주소라고도 부르며, 전 세계에서 유일한 번호로 할당되어 있다. MAC주소는 48비트 숫자로 구성되어 있으며, 그 중 앞쪽 24비트는 랜 카드를 만든 제조사 번호고 뒤쪽 24비트는 제조사가 랜 카드에 붙인 일련번호이다. AA-AA-AA-AA-AA-AA -> [AA-AA-AA] - [AA-AA-AA] 제조사 번호 제조사가 붙인 일련번호 OSI모델에서 데이터 링크 계층에 해당하고, TCP/IP 모델에서 네트워크 계층에 해당하는 계층에서 '이더넷 헤더'와 '트레일러'를 붙인다. 이더넷 헤더와 트레일러가 추가된 데이터를 '프레임'이라고 부른다. * 이더넷 헤더 이더넷 헤더는 목적지의 MAC주..

TIL 2022.09.27