반응형
[Next Step] 3~4장 HTTP 웹서버 구현을 통해 HTTP 이해하기(No Framework)
독서/📚2023. 11. 15. 11:21[Next Step] 3~4장 HTTP 웹서버 구현을 통해 HTTP 이해하기(No Framework)

로컬 개발 환경 구축 https://dev-ljw1126.tistory.com/294 [Next Step] 3.3 원격 서버에 배포 (p84) 정리목차 요구사항 로컬 개발 환경에 설치한 HTTP 웹 서버를 물리적으로 떨어져 있는 원격 서버에 배포해 정상적으로 동작하는지 테스트한다. 이때 HTTP 웹 서버 배포 작업은 root 계정이 아닌 배포를dev-ljw1126.tistory.com 실습 프로젝트 저장소실습의 경우 처음에 fork 받았는데, 깃 허브 잔디가 심어지지 않아 기술 블로그 참고(링크)하여 저장소 설정을 변경하도록 함 web-application-server (3 ~ 6장)https://github.com/slipp/web-application-server GitHub - slipp/web-a..

[Next Step] 12.8 웹서버 도입을 통한 서비스 운영(p458) 정리
독서/📚2023. 11. 10. 21:35[Next Step] 12.8 웹서버 도입을 통한 서비스 운영(p458) 정리

4-1. nginx 설치 및 설정 디렉토리$ apt-get install -y nginx$ sudo service nginx start$ netstat -tnlp  서버 아이피 접속시(80포트) nginx default 페이지 확인 가능하다80/tcp 접근 되지 않을 경우 ufw 방화벽 설정 확인해보기 주요 디렉토리 - /etc/nginx/sites-available- /etc/nginx/sites-enabled  참고. 강의 https://www.youtube.com/watch?v=7GlCo6RHBns4-2. nginx 와 tomcat 서버 연동nginx 와 tomcat 연결 설정$ cd /etc/nginx/sites-availabe$ sudo vim jwp-basic# 아래 내용 작성 후 저장 - t..

[Next Step] 10.4 배포 자동화를 위한 쉘 스크립트 개선 (p362) 정리
독서/📚2023. 11. 10. 17:17[Next Step] 10.4 배포 자동화를 위한 쉘 스크립트 개선 (p362) 정리

요구사항소스 코드를 배포한 후 문제가 발생할 경우 빠르게 원복(롤백, rollback)할 수 있는 환경을 구축한다  ① 배포 스크립트( deploy.sh ) 개선② 원복(롤백) 스크립트( rollback.sh) 구현 참고. 영상 자료https://www.youtube.com/watch?v=UqocnEIX-mAhttps://www.youtube.com/watch?v=7OSzN16FqCw1. 배포 스크립트( deploy.sh ) 개선개선할 부분① /home/releases/프로젝트 디렉토리 생성하여 빌드 디렉토리를 rename 하여 이동시킨다② 배포할 디렉토리를 TOMCAT_HOME/webapps의 ROOT로 심볼릭 링크 생성 후 톰캣 재시작한다 deploy.sh 수정#!/bin/bashREPOSITORY_..

[Next Step] 6.6 쉘 스크립트를 활용한 배포 자동화(p218) 정리
독서/📚2023. 11. 3. 22:22[Next Step] 6.6 쉘 스크립트를 활용한 배포 자동화(p218) 정리

요구사항-지금까지 구현한 기능을 개발 서버에 톰캣 서버를 설치한 후 배포한다-서버가 정상적으로 실행되고 있는지 톰캣 로그 파일( catalina.out )을 통해 모니터링 한다-쉘 스크립트를 만들어 배포 과정을 자동화 한다 ① 톰캣 서버 설치② 실습 코드 배포③ 톰캣 서버 로그 모니터링④ 쉘 스크립트 통해 배포 자동화  참고. 영상 자료https://www.youtube.com/watch?v=ZsiO27LeW34https://www.youtube.com/watch?v=9Rr4gMRyUtQhttps://www.youtube.com/watch?v=bzM1WL4qdoA1. 톰캣 서버 설치톰캣 디렉토리 구조 - bin : 톰캣 서버 시작/종료,  catalina.sh 옵션 설정도 가능 - logs : 톰캣 실행..

[Java] 람다식을 더 짧게 - 메서드 참조 Method Reference
공부/Java2023. 8. 2. 20:54[Java] 람다식을 더 짧게 - 메서드 참조 Method Reference

Method Reference - Java 8 도입- 하나의 메서드만 호출하는 람다식은 메서드 참조로 간소화하여 표현가능하다 (전달 인자를 생략하여 코드 간결해짐)- 구분자로 :: 사용- 아래의 4가지 유형 있음 아래 코드는 정렬할 때 [클래스 구현 -> 람다 -> 람다 간소화 -> 정적 메서드 참조]에 대한 비교 예시이다// 배열 선언Person[] perons = ...// (1) Comparator 구현 방식 (구 시대적)class PersonAgeComparator implements Comparator { public int compare(Person a, Person b) { return a.age().compareTo(b.age()); }}Arrays.sort(persons,..

[Java] Optional 클래스 메서드 (자바의 정석)
공부/Java2023. 8. 1. 17:34[Java] Optional 클래스 메서드 (자바의 정석)

NullPointerException(NPE)- Null 상태인 오브젝트를 레퍼런스할 때 발생 - Runtime error 이기 때문에 실행 전까지 발생 여부를 알기 쉽지 않음 Runtime 환경에서 에러가 발생할 경우, 심할 경우 서버 다운까지 가능하므로 발생시 리소스 비용이 만만치 않음 "Null pointer를 발명한 것은 나의 10억불짜리 실수였다" - Tony Hoare (출처 wikipedia)I call it my billion-dollar mistake. It was the invention of the null reference in 1965. At that time, I was designing the first comprehensive type system for references ..

[Next Step] 3.3 원격 서버에 배포 (p84) 정리
독서/📚2023. 7. 11. 21:38[Next Step] 3.3 원격 서버에 배포 (p84) 정리

요구사항 로컬 개발 환경에 설치한 HTTP 웹 서버를 물리적으로 떨어져 있는 원격 서버에 배포해 정상적으로 동작하는지 테스트한다. 이때 HTTP 웹 서버 배포 작업은 root 계정이 아닌 배포를 담당할 새로운 계정을 만들어 진행한다. ① 계정 추가 및 sudo 권한 할당② 각 계정별 UTF-8 인코딩 설정해 한글 이슈 해결③ JDK, 메이븐 설치④ Git설치, clone 및 빌드⑤ 방화벽 설정(ufw)⑥ 소스 코드 재배포 참고. AWS 사용할 경우 아래 링크 참고 (p83)https://opentutorials.org/module/1946 참고. 영상 자료https://www.youtube.com/watch?v=dWGzApCuF9Mhttps://www.youtube.com/watch?v=N8iLAuAo-..

[BOJ 15990] 1, 2, 3 더하기 5 (Java, DP)
알고리즘/동적 프로그래밍2023. 7. 10. 22:10[BOJ 15990] 1, 2, 3 더하기 5 (Java, DP)

문제 링크 https://www.acmicpc.net/problem/15990 15990번: 1, 2, 3 더하기 5 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다. www.acmicpc.net 문제 풀이 - 시간 복잡도 : O(N) - 1,2,3 더하기 문제에서 조금 변형된 문제, 상향식, 하향식 연습하기 좋은 문제 - 단, 같은 숫자를 연속적으로 붙일 수 없기 때문에 이전 숫자에서 무엇이 사용되었는지 상태값을 기록할 필요가 있다 (2차원 배열 사용) - 간단하게 2차원 배열로 해서 1 ~ 3 숫자 사용 여부를 표기하고 동일하게 점화식으로 구하면 됨 - 최대치 long DP[N + 1][4] 2차원 배열 생성 ( DP[N][1..

[BOJ 2688] 줄어들지 않아 (Java, DP)
알고리즘/동적 프로그래밍2023. 7. 10. 21:04[BOJ 2688] 줄어들지 않아 (Java, DP)

문제 링크 https://www.acmicpc.net/problem/2688 2688번: 줄어들지 않아 첫째 줄에 테스트 케이스의 개수 T(1

[BOJ 5557] 1학년 (Java, DP)
알고리즘/동적 프로그래밍2023. 7. 10. 14:13[BOJ 5557] 1학년 (Java, DP)

문제 링크 https://www.acmicpc.net/problem/5557 5557번: 1학년 상근이가 1학년 때, 덧셈, 뺄셈을 매우 좋아했다. 상근이는 숫자가 줄 지어있는 것을 보기만 하면, 마지막 두 숫자 사이에 '='을 넣고, 나머지 숫자 사이에는 '+' 또는 '-'를 넣어 등식을 만들며 놀 www.acmicpc.net 문제 풀이 - 입력의 경우 int 배열로 100개까지 받으므로 400byte - 연산에 필요한 DP의 경우 행20 * 100 * 8byte = 16KB 정도 메모리 잡음 - 최대치의 경우 출력에 2^63 -1 명시되어 있기 때문에 long으로 처리 시간 복잡도 상향식 (Bottom-Up) 하향식(Top-Down, 재귀 함수) O(N * 20) O(2^n) = O(2^100) - ..

[BOJ 2193] 이친수 (Java, DP)
알고리즘/동적 프로그래밍2023. 7. 10. 11:31[BOJ 2193] 이친수 (Java, DP)

문제 링크 https://www.acmicpc.net/problem/2193 2193번: 이친수 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않 www.acmicpc.net 문제 풀이 - 시간복잡도 : O(N) - 점화식 DP[N] = DP[N - 2] + DP[N - 1] 형태로 최대 N이 90까지 가능하다 - 피보나치의 경우 46번째만 넘어가도 29억이 넘기 때문에 long (8byte, 64bit)으로 문제 풀이 해야 함 풀이 순서 가짜 문제 정의 - 가짜 문제로 정답을 구할 수 있는가? - 초기항 - 점화식 - 풀이 & 테스트 0 1 2 ..

[BOJ 2096] 내려가기 (Java, DP, 슬라이딩 윈도우)
알고리즘/동적 프로그래밍2023. 7. 7. 13:43[BOJ 2096] 내려가기 (Java, DP, 슬라이딩 윈도우)

문제 링크 https://www.acmicpc.net/problem/2096 2096번: 내려가기 첫째 줄에 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 숫자가 세 개씩 주어진다. 숫자는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 중의 하나가 된다. www.acmicpc.net 문제 풀이 - 시간 복잡도 O(N) - 메모리 제한 4MB 직접 문제를 풀었을 때 최대 값을 구하는 것은 Bottom-Up방식으로 설명에 따라 그대로 하였기에 구할 수 있었다. 그러나 최소 값의 경우 구할 수 없었고, 기술 블로그를 찾아 본 결과 '메모리 제한', '슬라이딩 윈도우 기법'와 같은 파악하지 못 한 부분에 대해서도 확인할 수 있었다. (최소값의 경우 반대로 선택 가능 범위 내에 최소 값을..

[BOJ  1149] RGB거리 (Java, DP)
알고리즘/동적 프로그래밍2023. 7. 3. 13:46[BOJ 1149] RGB거리 (Java, DP)

문제 링크 https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 문제 풀이 - 시간 제한 0.5초 이므로 완전 탐색으로 풀 경우 시간 초과 발생 - 첫번째 집의 RGB 값으로 초기값을 설정하고, 동적 프로그래밍으로 풀이한다 - 최종적으로 DP[N][1 ~ 3] 값 중 최소값 출력 - 시간복잡도 : O(N) 점화식 DP[i][j] = Math.min(DP[i - 1][x], DP[i - 1][y]) + RGB[i][j] (이때 i..

[BOJ 2156] 포도주 시식(Java, DP)
알고리즘/동적 프로그래밍2023. 6. 30. 20:43[BOJ 2156] 포도주 시식(Java, DP)

문제 링크 https://www.acmicpc.net/problem/2156 2156번: 포도주 시식효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규www.acmicpc.net문제 풀이 - 시간복잡도 O(N)- 초기항 구하고, N번째 포도주에 대해 아래 3가지 경우를 비교하여 최대 값 구함  이때 3번 연달아 포도주를 마실 수 없다는 규칙에 따라 DP 테이블을 갱신한다 i번째 포도주를 마시지 않는 경우① DP[i - 1]할당 i번째 포도주를 마시는 경우② i - 1 번째 포도주 먹고 마시는 경우 최대치 (DATA[i - 1] + DP[i - 3])③ i - 2 번째..

[Docker] MySQL 5.7 설치 및 데이터 import
공부/DevOps2023. 4. 11. 19:22[Docker] MySQL 5.7 설치 및 데이터 import

docker 설치 # 공식 사이트와 동일하다. $ sudo apt-get remove docker docker-engine docker.io containerd runc $ sudo apt-get update $ sudo apt-get install ca-certificates curl gnupg $ sudo mkdir -m 0755 -p /etc/apt/keyrings $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg $ echo \ "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings..

[Vim] colortheme gruvbox 적용기 (to. Mac , WSL)
공부/Vim2023. 1. 28. 19:25[Vim] colortheme gruvbox 적용기 (to. Mac , WSL)

Vim에 syntax on 설정만 할 경우 가독성이 조금 나아지지만 마음에 들지 않는다. (기본 colortheme 또한..😑) 그래서 vim colortheme 중에 랭킹 1위로 보이는 gruvbox를 설치해보기로 했다. vim vundle 설치 vim 플러그인 관리자로 최초 설치하도록 함 (마치 프론트의 nvm, 스프링의 maven, gradle 같은 느낌인듯) $ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim 참고. - WSL 의 경우 개행문자로 인해 Vundle 실행시 에러 발생함! (아래 "에러2" 참고) - Mac OS 의 경우 문제없이 정상 동작함 ! 🤗 gruvbox 플러그인 설치 $ vim ~/..

공부/Spring2022. 6. 19. 22:48[JUnit] org.junit.runners.model.InvalidTestClassError: Invalid test class

개요 udemy 에서 junit test 인강 강의 듣던 중 해당 에러 발생 org.junit.runners.model.InvalidTestClassError: Invalid test class (이하 생략) 해결 방법 @Test 의 import 가 틀렸음 import org.junit.Test; ✨ //import org.junit.jupiter.api.Test; 💣참고 https://stackoverflow.com/questions/24319697/java-lang-exception-no-runnable-methods-exception-in-running-junits

공부/Spring2022. 6. 12. 11:55[ERROR] org.springframework.oxm.UncategorizedMappingException: Unknown JAXB exception

개요 spring batch clone project 테스트 하면서 공공 API xml 데이터 parsing 테스트 진행 dto 객체에 mapping 처리 해주는 과정에서 jaxb 에러 발생 에러 Caused by: org.springframework.oxm.UncategorizedMappingException: Unknown JAXB exception; nested exception is com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 13 counts of IllegalAnnotationExceptions (생략) 클래스에 동일한 이름 "year"을(를) 사용하는 속성이 두 개 있습니다. this problem is related to the fo..

반응형
image