본문 바로가기

프로젝트 & TIL

(103)
40일차 - 일급 컬렉션, 리플렉션 https://school.programmers.co.kr/learn/courses/30/lessons/87377 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 일급 컬렉션(First Class Collection) - 비즈니스에 종속적인 자료구조 - Collection의 불변성 보장 - 상태와 행위를 한 곳에서 관리 - 이름이 있는 컬렉션 https://jojoldu.tistory.com/412 일급 컬렉션 (First Class Collection)의 소개와 써야할 이유 최근 클린코드 & TDD 강의의 리뷰어로 참가하면서 많은 분들이 공통적으로 어려워..
39일차 - 자바 문법 심화 개요, hashcode(), List.of() 자바 문법 심화 Reflection Multi-threading Lambda expressions Modules : Java 9에서 도입 Var handles : Java 9에서 도입 CompletableFuture Pattern matching : Java 14에서 도입 hashCode() 각 개체에 고유의 정수값을 반환한다. set 계열의 컬렉션에서 객체가 동일한지 판단할 때 사용된다. 해시 충돌 => 이론상 가능하다. - 두 객체의 해시값이 같다면 equals()로 다시 비교한다. - equals()가 두 객체가 다르다고 판단하더라도 hashcode까지 달라야 할 필요는 없다. List.of() Java 9에서 도입 List.of()를 통해 만들어진 리스트는 완전한 불변 리스트다. 수정, 삭제 등의..
38일차 - 프로젝트 진행 시 참고 사항, PasswordEncoder * 깃 merge 후에 터미널에서 입력해야 할 명령어 git branch -D 브랜치_이름 git fetch --prune git branch -D ~ : 브랜치 삭제(깃허브 웹사이트에서도 Delete Branch 해주기!!!) git fetch : 원격 저장소의 최신 메타데이터 정보 확인 git fetch --prune : 원격 저장소에서 로컬로 데이터를 가져올 때 로컬 저장소에 없는 브랜치 및 태그를 제거 * git prune : 로컬 저장소에서 사용되지 않는 Git 객체(커밋, 트리, 블롭 등)를 제거 * DB 데이터 접근 방법 단순한 쿼리 : JPA 함수 복잡한 쿼리 : - JPA 반복 호출 - JPQL => QueryDSL(권장) - @Query(~SQL문~) PasswordEncoder를 이용..
37일차 - 도커 vhost HTML onclick 시 href 내용이 https://www.naver.com로 로 변경된다. Port based virtual hosting vim /etc/nginx/nginx.conf 위와 같이 들어가서 include /etc/nginx/conf.d/*.conf; 확인 vim /etc/nginx/conf.d/vhost.conf 위와 같이 vhost.conf 파일 생성(이름은 관습에 따른 것임) server { listen 8081; #listen 80 은 생략 가능 root /web/site1; } 위 내용 작성하고 :wq! mkdir -p /web/site1 => 위에서 작성한 root 폴더 생성 echo "Hello site1" > /web/site1/index.html => index.ht..
36일차 - 도커 허브에 내가 만든 이미지 업로드, 다운로드 HTML - input 이벤트 onkeyup : 키를 눌렀다가 뗐을 때 onchange : 내용 입력 후 포커스 해제 시 onpaste : 붙여넣기 했을 때 도커 허브에 내가 만든 이미지를 올리고 싶을 때 도커 로그인 docker login 아이디, 비밀번호 입력 이미지 이름에 대한 규칙 => 도커_허브_아이디/이미지명:버전 이미 만든 이미지에는 위 규칙에 맞게 태그를 부여한다. (새로운 이름을 부여한다.) docker tag 기존_이미지명 새_이미지명 docker tag nginx_1 yurrrrri/node_hello_1:1 docker push 이미지명 => 도커 허브에 업로드 docker push yurrrrri/node_hello_1:1 이미지를 다운로드 받을 때 docker pull yurrr..
35일차 - 도커 볼륨, 이미지 생성 도커 볼륨 docker run -d --restart="always" -p 80:80 nginx --restart="always" : CentOS 재부팅 시 자동으로 재시작 docker run \ --name=nginx_1 \ -p 80:80 \ -v 호스트_폴더_경로:게스트_폴더_경로 \ -d \ --restart="always" \ nginx 호스트 폴더 경로를 mkdir로 미리 생성하고 위와 같이 run 하면 원래 만들어졌어야 할 내부 파일들이 생성되지 않는다. 호스트 폴더 경로로 들어가서 index.html 파일을 생성해주면 접속 시 index.html 내용이 나온다. (hosts 파일에 site1.com을 192.168~로 작성해서 저장했기 때문에 site1.com으로 접속하면 됨) 도커 이미지..
34일차 - 도커 포트포워딩, 도메인 - 도커는 호스트 전용 어댑터 방식(NAT 방식 + 외부 접속)으로 외부와 통신한다. - 도커 컨테이너는 도커 호스트에서 식별할 수 있는 IP를 할당받는다. docker run -d --name==nginx_1 --rm nginx docker exec -it nginx_1 bash ip addr => command not found apt-get update apt-get install iproute2 ip addr => 출력 성공(172.17.0.2) exit => nginx_1 에서 빠져나간다. ping 172.17.0.2 => 네트워크 상태 점검. 종료하려면 Ctrl+c curl 172.17.0.2 => curl http://172.17.0.2:80/의 생략형 docker inspect nginx_..
33일차 - 도커 허브, 도커 명령어 https://hub.docker.com/ Docker Hub Container Image Library | App Containerization Deliver your business through Docker Hub Package and publish apps and plugins as containers in Docker Hub for easy download and deployment by millions of Docker users worldwide. hub.docker.com 이미지 == 프로그램 / 컨테이너 == 프로세스 => 이미지를 실행하면 컨테이너가 시작 systemctl status docker : docker 실행 중인지 상태 확인 docker pull 이미지명(또는 ID) : 이미..