전체 글 51

백준 10828 스택 - Java 자바 문제풀이

문제 해설 스택 자료구조를 직접 구현하는 문제입니다. 총 다섯가지의 명령에 따라 기능을 구현하면 됩니다. 문제 풀이 계획 필요 변수 변수명 타입 설명 N int 첫째 줄에 주어지는 명령의 수 arr int[] 숫자를 저장할 배열 top int 배열의 최종 인덱스를 가리킬 변수 해결 로직 명령 수 N을 입력 받는다. N 번에 걸쳐 명령어를 입력 받는다. 명령어 별로 분기 처리하여 각 로직을 처리한다. 풀이 코드 package com.newlecture.app.util; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import jav..

[Network] HTTP 상태코드

1. HTTP 상태코드란 HTTP 상태코드는 클라이언트가 보낸 요청에 대한 처리 상태를 응답으로 알려주는 기능이다. 1xx 부터 5xx 까지 5가지의 상위 상태코드로 분류할 수 있다. 1xx Informational은 요청이 수신되어 처리 중이라는 의미인데, 거의 사용하지 않으므로 넘어간다. 2. 2xx Successful 2.1 200 OK 요청이 정상 처리되었다는 의미이다. 2.2 201 Created 요청의 결과로 새로운 리소스가 생성되었다는 의미이다. 응답 HTTP 메시지 헤더에 Location 필드에 새롭게 생성된 리소스의 URI를 값으로 응답한다. 2.3 202 Accepted 요청은 접수되었으나 처리를 완료하지 않았다는 의미이다. 2.4 204 No Content 서버가 요청을 정상적으로 수..

개발/DevOps 2024.01.30

[Error] AWS CodeDeploy 이전 배포 파일 사라지는 현상 & 로그 위치

개요 현재 AWS 프리티어 계정의 한 대의 EC2에서 Client와 WAS 를 함께 배포하고 있다. 하지만 어째서인지 클라이언트를 배포하면 WAS 파일이 삭제되고 WAS를 배포하면 클라이언트가 삭제되는 현상이 발생했다. 결론적으로 그 원인은 바로 CodeDeploy의 동작 방식에 있었다. AWS CodeDeploy 공식 문서 EC2/온프레미스 배포 문제 해결 - AWS CodeDeploy Amazon Linux, RHEL 및 Ubuntu Server 인스턴스에서 정리 파일은 /opt/codedeploy-agent/deployment-root/deployment-instructions/에 있습니다. Windows Server 인스턴스에서의 위치는 C:\ProgramData\Amazon\CodeDeploy\..

[Git] 이미 리포지토리에 업로드 된 커밋 삭제하기

1. git reset git reset HEAD^ 깃 커밋 내역을 삭제하고 싶을 때 git reset 명령어를 사용합니다. HEAD는 현재 작업 중인 브랜치의 가장 최신 커밋을 가리키는 포인터입니다. HEAD^ 그리고 HEAD~1 는 현재 커밋의 한 단계 이전의 커밋 즉, 직전 커밋을 의미합니다. 두 단계 전 커밋을 가리키려면 HEAD^^ 라고 작성하면 됩니다. 2. git reset option git reset --mixed(생략가능) HEAD를 지정한 위치로 이동시키면서 해당 커밋에서 add 했던 스테이징 영역은 취소됩니다. 이전에 스테이징 됐던 변경내용이 스테이징 영역에서 내려가게 되어 unstaged 상태로 돌아갑니다. 작업 디렉토리의 변경내용이 유지됩니다. git reset --soft HE..

개발/Git 2023.08.15

[Network] JWT란 무엇이고 어떻게 동작하는가?

1. JWT 란 JSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parties as a JSON object. This information can be verified and trusted because it is digitally signed. JWTs can be signed using a secret (with the HMAC algorithm) or a public/private key pair using RSA or ECDSA. 위는 JWT 공식 웹페이지 https://jwt.io/int..

개발/DevOps 2023.07.04

[Error] Gradle script 'gradlew' is not executable, invalid source release 원인, 해결방법

1. gradlew is not executable 해결 방법 Gradle script '/home/runner/work/.../gradlew' is not executable. gradlew 파일의 실행 권한이 없어서 발생한 오류입니다. gradle 빌드 step 전 실행 권한을 부여하는 chmod +x ./gradlew 명령어를 추가하여 해결 했습니다. - name: Make gradlew executable run: chmod +x ./gradlew - name: Build with Gradle uses: gradle/gradle-build-action@67421db6bd0bf253fb4bd25b31ebb98943c375e1 with: arguments: build build-root-directo..

[Error] CodeDeploy Error code : UnknownError 원인, 해결방법

1. 문제 상황 codedeploy agent was not able to receive the lifecycle event. check the codedeploy agent logs on your host and make sure the agent is running and can connect to the codedeploy server. CICD 구축을 위해 CodeDeploy를 Github Actions와 연동시켰습니다. 그런데, 자꾸 ApplicationStop Event 단에서 실패하는 것입니다. 원인을 분석하기 위해 CodeDeploy log를 열어보았습니다. 2. 원인 분석 less /var/log/aws/codedeploy-agent/codedeploy-agent.log 저는 Ubuntu..

[Github] 깃허브 리포지토리 필수 파일 - README.md / .gitignore / LICENCE

깃허브 리포지토리 생성 시 README.md / .gitignore / LICENCE 파일을 생성해 리포지토리를 효율적으로 관리할 수 있다. 위 주요 파일이 깃허브 리포지토리에서 어떤 역할을 수행하는지 알아보자. 1. README.md README.md 파일은 오픈소스 프로젝트에서 가장 먼저 확인할 수 있는 파일이다. 마크다운 문법을 사용해 간단한 소개 페이지를 제작할 수 있다. 보통 오픈소스를 활용할 수 있는 방법, 프로젝트에 관한 전반적인 핵심 소개가 포함되어있다. # My First Repository 첫 번째 리포지토리입니다. ## Features - 기능1 - 기능2 ## Contributors - FE: 개발자1, 개발자2 - BE: 개발자3, 개발자4 ## Project Wiki - 보다 더..

개발/Git 2022.12.17

[Github Actions] Error: Gradle script is not executable 오류 해결

Github Actions를 이용한 배포 자동화를 학습하는 중 Gradle 빌드가 기본적으로 구성되어있는 "Java with Gradle" workflow를 생성했다. 기본적으로 아래와 같이 gradle.yml 파일을 생성해준다. name: Java CI with Gradle on: push: branches: [ "master" ] pull_request: branches: [ "master" ] permissions: contents: read jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up JDK 11 uses: actions/setup-java@v3 with: java-version: '11'..

개발/Git 2022.12.08

[Github] 깃허브 SSH key 등록하기 - git@github.com:Permission denied (publickey)

git push, git pull 명령어를 실행했을 때 위와 같은 오류 메시지가 출력되었다. 그 이유는 바로 git@github.com에 연결된 ssh key가 없었기 때문이다. 해결 방법은 ssh key를 생성하여 github 계정에 등록하면 된다. $ ssh-keygen -t rsa -C "github계정 이메일" 위 명령어를 실행하면 사용자의 홈 디렉토리 아래에 .ssh 폴더가 생성되고, 그 아래에 rsa 방식으로 id_rsa (개인키)와 id_rsa.pub (공개키) 파일이 생성된다. 개인키는 인증 용도로 사용되며, 노출되면 안된다. 공개키는 연결 시스템에 등록하여 개인키를 인증하는데 사용된다. 터미널은 SSH key를 어떤 디렉토리에 저장할 것인지, passphrase (ssh key를 사용하기..

개발/Git 2022.12.02