반응형
[Java] Annotation - 어노테이션 (자바의 정석)
공부/Java2023. 7. 19. 21:40[Java] Annotation - 어노테이션 (자바의 정석)

자주 사용하는 표준 어노테이션 @Override - 오버라이딩을 올바르게 했는지 컴파일러가 체크  @Deprecated- 앞으로 사용하지 않을 것을 권장하는 필드나 메서드에 붙임 @FunctionalInterface- 함수형 인터페이스는 하나의 추상메서드만 가져야 한다는 제약이 있음- 함수형 인터페이스에 붙이면, 컴파일러가 제대로 작성했는지 체크- 함수형 인터페이스라고 명시적으로 알려줌 @SuppressWarnings- 컴파일러가 경고 메시지가 나타나지 않게 한다. - 명시적으로 경고를 확인하고 억제하기 위해 붙였다는 의미를 나타내기도 함# 한 가지@SuppressWarnings("unchecked")List list = new ArraysList(); // 제네릭 타입 지정하지 않아 발생하는 오류 표시..

[Intellij] Custom VM options 잘못 설정하여 실행되지 않는 경우 : Invalid initial heap size
공부/IDE2023. 7. 17. 21:54[Intellij] Custom VM options 잘못 설정하여 실행되지 않는 경우 : Invalid initial heap size

문제 인강을 보며 신규 프로젝트 생성하면서 무심코 Custom VM options을 수정한 뒤로 인텔리제이가 실행 되지 않았다. (-Xms1024m -Xmx2048m) *한시간 동안 괴롭혔던 에러 메시지 $ intellij // 인텔리제이 실행 alias Invalid initial heap size: -Xms1024m Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. 기술블로그를 찾아보거나 ChatGPT에게 질문해보아도 인텔리제이 설치 경로에 있는 idea64.vmoptions의 Xms, Xmx 힙 사이즈 수정해도 실행되지 않았다 설치 경로 /home/사용자명/..

Jenkins 빌드 배포시 Slack 알림 설정 (5)
공부/DevOps2023. 7. 16. 14:28Jenkins 빌드 배포시 Slack 알림 설정 (5)

Jenkins v2.413 기준 설명 Slack 설정 Slack 가입 및 개인 채널 생성 (생략) - 무료 플랜 사용 - 배포 알림 채널로 #build-deploy 생성 Jenkins CI 앱 설치 앱에서 jenkins 검색하여 추가 아래 이미지에서는 생략되어 있지만 친절하게 Jenkins에 Slack Token 등록하는 방법 또한 가이드 설명해 준다 사용할 채널을 선택하고 Slack Token을 발급받고 가이드에 따라 Jenkins 설정에 해당 토큰을 등록 후 사용 Jenkins 설정 plugin 설치 - 플러그인 설치 권한 가진 계정으로 접속 - [Jenkins관리 > Plugins] 에서 slack notification 설치 Slack Token 등록 - [jenkins 관리 > System] 메..

[Ubuntu] /bin/bash로 기본 shell 변경하기
공부/DevOps2023. 7. 15. 21:06[Ubuntu] /bin/bash로 기본 shell 변경하기

chsh 명렁어 실행 $ su root $ chsh -s /bin/bash /etc/passwd 수정 $ vim /etc/passwd /bin/sh 를 /bin/bash 로 수정 후 저장하면 된다

[Docker] Jenkins Build, Deploy, Execute Shell / 자동배포 환경 테스트 (4)
공부/DevOps2023. 7. 15. 21:01[Docker] Jenkins Build, Deploy, Execute Shell / 자동배포 환경 테스트 (4)

전체 flow 해당 포스팅에서는 *.war 빌드 배포 후 hello world 화면 확인하는 과정만을 기록 Jenkins Execute Shell 작성 1. Execute Shell #!/bin/bash ./gradlew clean bootWar 2. Execute Shell #!/bin/bash BUILD_FILE=$(find . -name *.war) FILE_NAME=`basename $BUILD_FILE` HOST=ubuntu1 USER=ubuntu LOC=/home/ubuntu/project/wars SYMBOLIC_LINK=/home/ubuntu/project/dev.war RUN_CMD=/home/ubuntu/project/deploy.sh echo "> copy ${BUILD_FILE} t..

[Docker] Container SSH key 접속, scp 명령어로 파일 전송 (3)
공부/DevOps2023. 7. 15. 15:51[Docker] Container SSH key 접속, scp 명령어로 파일 전송 (3)

* 절차 : Docker Network 신규 생성 > hostname 지정 > ssh key 통신 접속 수행 Docker Network 생성 $ docker network create --gateway 172.19.0.1 --subnet 172.19.0.0/16 home # 확인 $ docker network ls $ docker inspect home - home bridge 신규 생성 - docker의 경우 신규 컨테이너 생성시 default 네트워크에 B클래스 대역 IP로 할당하는 것으로 보임 Docker Container 실행 및 SSH Key 접속 - 사전에 만들어 놓은 ubuntu와 jenkins container 를 활용하여 - docker run의 경우 container를 다시 만들고, 실..

[Docker] Container IP 확인 및 SSH 접속하기 (2)
공부/DevOps2023. 7. 14. 22:43[Docker] Container IP 확인 및 SSH 접속하기 (2)

Docker Container 별 IP Address 확인 1. host (local) 에서 docker command로 확인하기 방법1. docker inspect json 형태로 구성된 (low-level) docker container 정보에서 확인 $ docker inspect -f "{{.NetworkSettings.IPAddress}}" $ docker inspect | grep IPAddress 방법2. docker exec 실행 중인 docker container 에 command 실행 시킴 이때 ip 명령어의 경우 서버에 패키지 설치 되어 있지 않을 경우 동작하지 않음 (iproute2 패키지 설치) $ docker exec ifconfig eth0 $ docker exec ip addr..

[Docker] Jenkins 설치 및 Github 연동 (1)
공부/DevOps2023. 7. 8. 14:52[Docker] Jenkins 설치 및 Github 연동 (1)

Jenkins 설치 (By Docker) - 처음 lts와 2.176.2 설치했었는데, 버전 문제인지 플러그인 설치 실패 계속 되었음 - docker hub에서 2.413-jdk11버전으로 받으니 플러그인 정상 설치 확인 # docker image 검색 $ docker search jenkins # image 다운로드 $ docker pull jenkins/jenkins:2.413-jdk11 # image 확인 $ docker images # 설치 $ docker run --name jenkins -d -p 8080:8080 -p 50000:50000 -v /home/jenkins:/var/jenkins_home -u root jenkins/jenkins:2.413-jdk11 # container 터미널..

공부/DB2023. 6. 30. 16:40H2 데이터 베이스 연결(*.yml)

초기 개발 환경에서 h2 inmemory 데이터 베이스를 활용하여 테이블 생성 및 샘플 데이터 입력할 수 있도록 설정 수행 1. 의존성 추가 (build.gradle) dependencies { // spring boot implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' // test testImplementation 'org.springframework.boot:spring-boot-starter-test' // lombok compileOnly 'org.projectlombok:lombok' annotatio..

[Java] Primitive type (기본형 타입)
공부/Java2023. 5. 31. 21:56[Java] Primitive type (기본형 타입)

Primitive type - 총 8가지의 기본형 타입을 자바에서 제공함 - 기본값을 제공하기 때문에 Null이 존재하지 않음. 만약 기본형 타입에 Null을 넣고 싶은 경우 Wrapper class를 활용해야함 - 실제 값을 저장하는데, 이때 Stack(스택) 메모리에 저장됨 타입 할당 메모리 크기 데이터 표현 범위 논리형 boolean 1byte false, true 정수형 byte 8bit (1byte) -128 ~ 127 short 16bit (2byte) -32,768 ~ 32,767 int 32bit (4byte) -2,147,483,648 ~ 2,147,483,647 long 64bit (8byte) -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,..

패스트캠퍼스 JavaScript 코딩테스트 강의 한 달 후기
공부/Javascript2023. 5. 12. 20:41패스트캠퍼스 JavaScript 코딩테스트 강의 한 달 후기

후기🧑‍💻 약 2년 전 단기간 코딩 테스트 준비를 하여 더 나은 곳으로 이직을 할 수 있었다. 실무에서 코딩 테스트와 같은 문제를 요구하지는 않지만, 문제 해결 과정에서 필요한 자료 구조 유형을 판단하여 사용하거나 알고리즘 기법을 응용해서 적용하거나 할 수 있었다. 이는 이전에는 할 수 없었던 경험이었다. 그러나 시간이 지남에 따라 잊게 되고, 할 줄 아는 거만 반복하는 모습에서 기본기가 부족한 게 아닌가 싶은 고민을 하고 있었고, 이러한 상황에서 기회가 되어 강의를 수강할 수 있었다. 한 단계 더 성장 강의 해설에 절차 지향적인 코드와 설명을 접하더라도 이해가 되지 않는 경우가 많았다. 그럴 때 마다 시야를 넓혀서 기술 블로그/유튜브 등을 통해 앞서 고민했던 사람의 흔적을 볼 수 있었고, 그 결과 새로..

패스트캠퍼스 JavaScript 코딩테스트 강의 4주차
공부/Javascript2023. 5. 8. 20:07패스트캠퍼스 JavaScript 코딩테스트 강의 4주차

온라인 코드 테스트 사이트 https://replit.com/ https://www.jdoodle.com/execute-nodejs-online/ Ch 10. 최단 거리 다익스트라 알고리즘(Dijkstra Algorithm) - 시작 노드를 기준으로 다른 모든 노드로 가는 최단 경로를 계산 - 간선의 가중치가 양수(>= 0)인 경우에 최단 거리를 구할 수 있음 - 다익스트라 알고리즘은 그리디(탐욕) 알고리즘으로 분류됨 => 매 상황에서 가장 비용이 작은 노드를 선택해 알고리즘 과정을 반복함 - 시간 복잡도 : O(ElogV) 다익스트라 알고리즘의 기본적인 구조/절차는 아래와 같다 * 알고리즘 동작과정 1. 출발 노드 설정 2. 최단 거리 테이블 초기화 (이때, 출발 노드는 0, 그 외는 INF) 3. 방..

패스트캠퍼스 JavaScript 코딩테스트 강의 3주차
공부/Javascript2023. 5. 1. 14:25패스트캠퍼스 JavaScript 코딩테스트 강의 3주차

온라인 코드 테스트 사이트 https://replit.com/ https://www.jdoodle.com/execute-nodejs-online/ Ch 07. DFS (깊이 우선 탐색) 알고리즘 문제 1-1) 바이러스 (실버3) - 양방향 그래프로 생각하고 인접 리스트 표현하기 // SUCCESS const fs = require('fs'); const input = fs.readFileSync('/dev/stdin').toString().split('\n'); const n = Number(input[0]); const v = Number(input[1]); const matrix = []; for(let i = 0; i = row || y >= col) return false; if(matrix[x]..

패스트캠퍼스 JavaScript 코딩테스트 강의 2주차
공부/Javascript2023. 4. 24. 10:28패스트캠퍼스 JavaScript 코딩테스트 강의 2주차

온라인 코드 테스트 사이트 https://replit.com/ https://www.jdoodle.com/execute-nodejs-online/ ch04. 그리디(탐욕) 알고리즘 추후 예정 문제 목록 더보기 문제 1-1) 동전0 문제 1-2) ATM 문제 1-3) 잃어버린 괄호 문제 2-1) 설탕배달(실버4) 문제 2-2) A -> B(실버2) 문제 2-3) 수들의 합 문제 2-4) 신입사원 문제 3-1) 주유소 문제 3-2) 회의실 배정 문제 3-3) 풍선 맞추기(골드5) 문제 3-4) 피보나치(실버1) 문제 4-1) 박 터뜨리기(실버4) 문제 4-2) 회문(골드5) 문제 4-3) 박스 채우기(골드3) ch05. 이진 탐색 순차탐색 이진탐색 - 리스트 안에 특정 데이터 찾기 위해 앞에서 부터 순차적으..

패스트캠퍼스 JavaScript 코딩테스트 강의 1주차
공부/Javascript2023. 4. 17. 15:50패스트캠퍼스 JavaScript 코딩테스트 강의 1주차

온라인 코드 테스트 사이트 https://replit.com/ https://www.jdoodle.com/execute-nodejs-online/ 빅오 표기법(Big-O Notation) 시간 복잡도 의미 O(1) 상수 시간(constant time) O(logN) 로그 시간(log time) O(N) 선형 시간(linear time) O(NlogN) 로그 선형 시간(log-linear time) O(N^2) 이차 시간(quadratic time) O(N^3) 삼차 시간(cubic time) O(2^N) 지수 시간(exponential time) - 시간 복잡도 (time complexity) : 알고리즘에 사용되는 연산 횟수 측정 - 공간 복잡도 (space complexity) : 알고리즘에 사용되는..

[IntelliJ] .editorconfig 활용하여 JS Code Style 맞추기
공부/IDE2023. 4. 13. 11:41[IntelliJ] .editorconfig 활용하여 JS Code Style 맞추기

Convention 정하지 않고 작업하게 될 경우, 서로 다른 작성 방식으로 인해 코드 가독성 저하를 일으키고 장기적으로 볼 때 유지 보수 함에 있어 큰 문제를 야기할 수 있습니다. Team Convention - 코드 스타일을 통일 시키는데 있어 Prettier 미사용하기로 함 - 규칙이 상대적으로 적고, 인텔리제이에서 제공하는 기능을 활용하는게 더 나은 것으로 판단했기 때문 설정 파일 .editorconfig 인텔리제이 설정 [File > Settings> Editor > Code Style] 이동 General Tab 에서 Enable EditorConfig Support 옵션 ✔ (=.editorconfig 설정 파일 허용) Formatter Tab에서 Do not format 에 제외 대상 gl..

[IntelliJ] JS Code Convention 맞추기 (by eslint, husky, lint-staged)
공부/IDE2023. 4. 13. 11:19[IntelliJ] JS Code Convention 맞추기 (by eslint, husky, lint-staged)

Convention 정하지 않고 작업하게 될 경우, 서로 다른 작성 방식으로 인해 코드 가독성 저하를 일으키고 장기적으로 볼 때 유지 보수 함에 있어 큰 문제를 야기할 수 있습니다. Team Convention JS 코드 형식이 사람마다 미묘하게 차이나서, 통일 시켜 일관성을 맞추고 신경쓰지 않고 자동화될 수 있도록 사용하게 됨 ESLint 활용하여 JavaScript Code Convention 검사 수행 (ES6 기준) husky , lint-staged 활용하여 pre-commit 단계에서 staged file 대상으로 ESLint 검사 자동화 Automatic ESLint 아래의 플러그인 활용하여 자동화 수행 husky : Git hook 편리하게 사용할 수 있도록 지원 ( pre-commit 활..

[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..

반응형
image