Github Actions, Slack Webhook 설정
·
DevOps/Git, Github
1. slack api에서 설명하는 3번 과정까지 진행한다.  https://api.slack.com/messaging/webhooks 2. 생성된 slack webhook url을 Secrets 환경 변수에 등록한다.  3. .github/workflows/{파일명}.yml 파일에 아래 내용을 작성한다.  # Slack Webhook 설정 - name: action-slack uses: 8398a7/action-slack@v3 with: status: ${{ job.status }} author_name: Backend fields: repo,commit,message,author mention..
AWS S3 403 에러 해결하기
·
DevOps/AWS
프로젝트를 배포하고, 운영환경에서 여러가지 통합 테스트를 진행하던 과정에서 아래와 같은 에러와 마주하였다. 자세히 살펴보니 AWS S3 burket 에서 문제가 발생한 것으로 보였다. 개발도 힘들지만, 운영 환경을 유지하는 것도 참 어렵다는 것을 깨닫고 있는 요즈음이다. 그래도 좋은 팀원들과 함께 성장하고 있어서 힘들지 않다. (아니 힘들어) ERROR : java.io.IOException: Server returned HTTP response code: 403 for URL; https://{AWS S3 bucket 주소}  해결 방법AWS 로그인 - AWS S3 - 사용중인 bucket 접속 - 권한  1. 버킷 정책 설정{ "Version": "2012-10-17", "Id": "Pol..
재부팅시 docker container를 자동으로 실행되도록 설정하는 방법
·
DevOps/docker
https://freesunny.tistory.com/24 재부팅시 docker 컨테이너를 자동으로 시작되도록 설정하는 방법만들때 --restart-always 옵션을 넣어주면 되는데, 빼고 컨테이너를 실행했을 때에는 아래의 명령으로 변경할 수 있다. # docker update --restart=always # 예) # docker update --restart=always d3af8191dca8freesunny.tistory.com
aws ec2에 올린 docker container DB에 DBeaver로 접속하기
·
DevOps/AWS
DB Connect 클릭상단 탭에서 SSH 클릭host/IP : EIP 또는 public IP 입력본인 EC2 기준 : ubuntuAuthentication Method : Public KeyPrivate Key : AWS EC2 생성하면서 받은 .pem 파일 등록상단 Main 클릭Database 이름 입력해당 DB username과 password 입력 후 Test Connection 클릭연결 성공
[Java] Java Application이 32bit 또는 64bit JVM에서 실행 중인지 여부 판별하기
·
Backend/Java
Java에 대해서 천천히 공부 중이다. 알고리즘 문제를 풀기 위해서, 개발을 위해서, 학교 수업을 위해서 어떤 문법으로 어떤 기능을 개발할 것이냐에 초점을 두고 공부해왔다. JVM이 어떻게 돌아가는 지, Java API가 제공하는 기능들이 무엇인지도 모르면서...!  하나씩 차근차근 이해하고 공부하자.  public class Main { public static void main(String[] args) { // We can use the “sun.arch.data.model” system property to identify JVM bitness: String jvmBit = System.getProperty("sun.arch.data.model"); if..
[MYSQL] dbeaver 연결 시 Public Key Retrieval is not allowed 에러 해결하기
·
Computer Science/DataBase
발생한 상황Local 환경으로 Mysql 설치 후, DBeaver에 Test Connection을 시도했다. 'Public key Retrieval is not allowed' 라는 문구와 함께 연결에 실패했다. 찾아보니, MySQL 8.0 이상부터 생길 수 있는 문제라고 한다. (Mysql은 쓸 때 마다 에러가 생김.....)  해결하기 위한 방법으로 Driver properties 설정을 변경하자.  https://velog.io/@dailylifecoding/DBeaver-MySQL-connecting-error-Public-Key-Retrieval-is-not-allowed-solved
[docker] docker 설치 후 /var/run/docker.sock의 permission denied 발생하는 경우
·
DevOps/docker
⇒ 해결방법 : https://github.com/occidere/TIL/issues/116#issue-509567575 docker 설치 후 /var/run/docker.sock의 permission denied 발생하는 경우 · Issue #116 · occidere/TILdocker 설치 후 /var/run/docker.sock의 permission denied 발생하는 경우 상황 docker 설치 후 usermod로 사용자를 docker 그룹에 추가까지 완료 후 터미널 재접속까지 했으나 permission denied 발생 (설치 참고: https://bgithub.com
[docker] 컨테이너와 도커의 이해
·
DevOps/docker
왜 도커를 리눅스에서 돌려요 ?리눅스 커널의 기능들인 chroot, namespace, cgroup을 가지고 컨테이너를 생성하기 때문.chroot : 독립된 공간 형성namespace : isolate 기능 지원cgroup : 필요한만큼 HW 지원컨테이너 기반 기술 → 리눅스 커널리눅스 커널이 없으면 컨테이너를 돌릴 수 없다.window,mac os는요 ? → hypervisor를 활성화시켜서 그 위에 컨테이너를 돌리는 것 !!!  컨테이너? 컨테이너 이미지? 컨테이너컨테이너는 하나의 Application 프로세스 → 각 컨테이너는 독립적으로 운영된다. 간단히 말해서 컨테이너는 앱의 각 구성 요소에 대해 격리(Isolation)된 프로세스이다.각 컨테이너는 호스트 시스템에 사전 설치된 종속성에 의존하지 ..
[Network] foward & reverse proxy server
·
Computer Science/Network
프록시 서버란 ?프록시, 웹 프록시라고도 하는 정방향 포록시는 클라이언트 시스템 그룹 앞에 위치하는 서버이다. 컴퓨터가 인터넷의 사이트 및 서비스에 요청하면 프록시 서버가 이러한 요청을 가로채고 중개자처럼 해당 클라이언트를 대신하여 웹 서버와 통신한다.ex)A : 사용자의 가정용 컴퓨터B : 정방향 프록시 서버C : 웹 사이트의 원본 서버(웹 사이트 데이터가 저장되는 곳) 표준 인터넷 통신에서는, 컴퓨터 A가 컴퓨터 C에 직접 연결하고 클라이언트는 원본 서버에 요청을 보내며 원본 서버가 클라이언트에 응답한다. 정방향 프록시가 설정되면 A가 대신 B에 요청을 보내고 B가 요청을 C로 전달한다. 그런 다음 C가 B에게 응답을 보내고 B가 응답을 A에게 다시 전달한다. 그렇다면, 정방향 프록시를 사용하는 이유..
Junit5 Controller Test Mockmvc 기본 사용 방법 (get, post, delete, patch)
·
Backend/Junit5
Controller SpringBoot에서 JUnit5를 사용하여 테스트 코드를 작성할 때, @SpringBootTest 어노테이션을 자주 쓰는데, 상황에 따라 @WebMvcTest를 쓰는게 좋을 떄도 있다. @SpringBootTest는 프로젝트의 전체 컨텍스트를 로드하여 빈을 주입하기 때문에 속도가 느리고, 통합 테스트를 할 때 많이 사용한다. 필요한 빈만 등록하여 테스트를 진행하고자 한다면, 슬라이스 테스트 어노테이션인 @WebMvcTest를 사용하는 것이 효율적이다. 슬라이스 테스트란? 특정 부분만 테스트할 수 있는 테스트를 말한다. 아래는 대표적인 슬라이스 테스트 어노테이션이다. @WebMvcTest - Controller를 테스트할 수 있도록 관련 설정을 제공 - 특정 컴포넌트만 Bean으로 ..
Query did not return a unique result: 2 results were returned 에러 해결하기
·
Backend/Spring Boot
테스트 코드를 작성하다가 문뜩 이런 에러를 마주하였다. Query did not return a unique result: 2 results were returned 엥?.. 왜 2개의 결과값이 들어오지 ? 살펴보니 Repository에서 값을 받아오면서 생긴 문제였다. Optional findByIdentifer (string identifier); 해결 방법은 Optional이 아닌 List로 데이터를 받자! 쉽죠잉? Optional findByIdentifer (string identifier); // 변경 전 List findByIdentifer (string identifier); // 변경 후
[BOJ] 20056번: 마법사 상어와 파이어볼
·
Problem Solving/삼성 유형
출처 : https://www.acmicpc.net/problem/20056 20056번: 마법사 상어와 파이어볼 첫째 줄에 N, M, K가 주어진다. 둘째 줄부터 M개의 줄에 파이어볼의 정보가 한 줄에 하나씩 주어진다. 파이어볼의 정보는 다섯 정수 ri, ci, mi, si, di로 이루어져 있다. 서로 다른 두 파이어볼의 위치 www.acmicpc.net 실수한 목록 1. 문제를 제대로 이해하지 않고, 넘어감 '1번 행은 N번과 연결되어 있고, 1번 열은 N번 열과 연결되어 있다.' 라는 말은 2차원 배열의 격자를 벗어나더라도 연결되어 있음을 의미한다. ex) 3 x 3크기의 2차원 0-indexed 배열에서 (0,0)에서부터 열을 기준으로 +1 칸씩 이동해보자. 1칸 이동 (0,0) -> 1칸 이동..