본문 바로가기

프로젝트 & TIL/일별 공부 기록 (백엔드 스쿨)

(98)
43일차 - 도커 컴포즈 도커 컴포즈 앞서 해야할 것 - mariaDB 이미지 실행 - 계정 생성 & 권한 부여 - selinux, firewalld, nginx 끄기 및 비활성화 - CREATE DATABASE nginx; 디렉토리 만들고 docker-compose.yml 작성 mkdir -p /docker_projects/nginx_proxy_manager_1 cd /docker_projects/nginx_proxy_manager_1 vim docker-compose.yml version: "3" services: app: image: 'jc21/nginx-proxy-manager:latest' restart: unless-stopped ports: - '80:80' # Public HTTP Port - '443:443' #..
42일차 - ArrayList, HashMap 직접 구현 @TestMethodOrder 테스트를 실행하는 순서를 보장해야 할 때 적용하는 어노테이션 @TestMethodOrder(MethodOrderer.MethodName.class) public class MyArrayListTest { @Test void t002() { ... } @Test void t001() { ... } } 위와 같이 실행하면 t001(), t002() 순으로 테스트가 실행된다. ArrayList 직접 구현 시 참고 사항 List의 add()는 true를 리턴한다. 제네릭 배열은 생성할 수 없다. Object 배열로 만들고 return할 때 T로 형변환하는 식으로 진행 배열은 공변하며 런타임에 실체화되지만, 제네릭 타입은 불공변하며 런타임에 소거 이로 인해 배열은 타입 안전성을 보장..
41일차 - 재귀 함수 https://school.programmers.co.kr/learn/courses/30/lessons/12946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 재귀 함수 자기 자신을 호출하는 함수 아래와 같은 경우에 사용할 수 있다. - 비슷한 로직이 반복 연산된다. - 분할 정복이 가능하다. - 복잡해 보이지만 작게 보면 로직이 간단하다.
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..