전체 글

Dev/AWS

[AWS] io.awspring 라이브러리를 활용하여 SpringBoot & Amazon S3 연동하기

io.awspring 라이브러리를 활용하면 S3를 더 간결한 코드로 연동할 수 있다는 것을 알게 되었다. 이번 글에서는 기존 S3 연동 코드를 지우고 새롭게 연동하는 과정을 정리하고자 한다. 간단하게 말하면 흔히 사용하는import com.amazonaws.auth.AWSStaticCredentialsProvider;import com.amazonaws.auth.BasicAWSCredentials;import com.amazonaws.services.s3.AmazonS3;import com.amazonaws.services.s3.AmazonS3ClientBuilder;이 네 개의 라이브러리 대신import io.awspring.cloud.s3.S3Resource;import io.awspring.clou..

Dev/Database

[DB] SQL vs. NoSQL

현재 MySQL을 사용하여 프로젝트를 진행하고 있는데, 처음 프로젝트를 설계할 때 얘기나왔던 PostgreSQL에 대해 찾아보니 SQL과 NoSQL을 모두 지원한다는 것을 알게 되었다. NoSQL에 대한 개념을 Json쿼리로만 가볍게 이해하고 있었는데 이번 기회에 정리하고자 한다. 프로젝트에 있어 적합한 데이터베이스를 선택하는 것은 매우 중요하다. 단순히 프레임워크에 따라 결정하지 말고, 두 SQL의 차이를 이해하여 결정해야 한다. SQL이란 관계형 데이터베이스 RDBMS에서 데이터를 저장, 수정, 삭제, 검색 가능 데이터는 정해진 스키마에 따라 테이블에 저장 데이터는 관계를 통해 여러 테이블에 분산 따라서 스키마를 준수하지 않은 레코드는 테이블에 추가할 수 없다. 또한 중복을 피하기 위해서 '관계'라는..

IT

[우아한테크세미나] 우아한객체지향 By 우아한형제들 개발실장 조영호님

이 영상은 (나한테 큰 충격과 깨달음을 주었던 객체지향 책인) 오브젝트의 저자님인 조영호 선생님께서 직접 설명해 주시는 객체지향 영상이다. 배달 플로우 중 "주문"을 기준으로 코드와 함께 설명해 주신다. 몇 달 전부터 보고 싶었으나 객체지향 개념이 부족해 이해하지 못하다가 이번에 다시 시청했다. 비록 뒷내용인 이벤트 핸들러 부분은 개념이 부족해 이해하지 못했지만 공부 후에 한 번 더 시청할 예정이다. 인상 깊은 내용을 위주로 정리하다 보니 잘못 작성된 부분이 있을 수 있습니다. 댓글로 알려주시면 감사하겠습니다. 우아한객체지향 By 우아한형제들 개발실장 조영호님 의존성을 따라 시스템을 진화시켜라 의존성이란 무엇일까? 의존성이란 "변경에 의한 영향"이다. B가 변경될 때 A도 함께 변경되면 두 클래스는 의..

PS/백준

[백준] 16948번 데스 나이트 (python)

https://www.acmicpc.net/problem/16948 16948번: 데스 나이트 게임을 좋아하는 큐브러버는 체스에서 사용할 새로운 말 "데스 나이트"를 만들었다. 데스 나이트가 있는 곳이 (r, c)라면, (r-2, c-1), (r-2, c+1), (r, c-2), (r, c+2), (r+2, c-1), (r+2, c+1)로 이동할 수 있다. 크 www.acmicpc.net 이 문제는 데스 나이트가 (r1, c1)에서 (r2, c2)로 이동하는 최소 이동 횟수를 구하는 것이다. 전형적인 bfs 문제로, 주어진 방향을 탐색하며 횟수를 더해가면 된다. 다른 bfs 문제와의 차별점을 찾자면 일반적인 상하좌우가 아니라, (r-2, c-1), (r-2, c+1), (r, c-2), (r, c+2),..

PS/백준

[백준] 3184번 양 (python)

https://www.acmicpc.net/problem/3184 3184번: 양 첫 줄에는 두 정수 R과 C가 주어지며(3 ≤ R, C ≤ 250), 각 수는 마당의 행과 열의 수를 의미한다. 다음 R개의 줄은 C개의 글자를 가진다. 이들은 마당의 구조(울타리, 양, 늑대의 위치)를 의미한다. www.acmicpc.net "우리의 양은 늑대에게 싸움을 걸 수 있고 영역 안의 양의 수가 늑대의 수보다 많다면 이기고, 늑대를 우리에서 쫓아낸다. 그렇지 않다면 늑대가 그 지역 안의 모든 양을 먹는다." 이 문장을 중심으로 풀어나가면 된다. 일반적으로 탐색만 하는 BFS 문제와 달리 이 문제는 마당 안에 있는 양과 늑대의 수를 상황에 따라 줄여주면서 탐색해야 한다. 즉, 탐색하는 과정에서 양과 늑대의 수를 저..

Dev/AWS

[AWS] CodeDeploy의 scripts/deploy.sh를 제대로 작성해보자

앞 게시글을 보면 나의 배포 일기를 확인할 수 있다. https://yooooooni.tistory.com/132 [AWS] EC2 배포 일주일 삽질 스토리 (feat. 환경변수) 약 2주간의 삽질이 방금 끝났다.. 끝이 안 보이던 문제가 해결되니까 허무하고 어이없고 홀가분하다..! 지난 일주일간 있었던 일을 적어보자면 1. 탄력적 IP 부여해 줘도 접속 안 됨 인바운드 규칙 yooooooni.tistory.com 하지만 위 해결 방안은 jar을 직접 실행하는 방식이었기 때문에 자동화를 적용하지 못했다. 당시 상황은 EC2 우분투 환경으로 들어가 git ssh 클론을 받아 직접 jar을 실행했다. 나는 CodeDeploy를 이용하여 nohup 명령어를 통해 백그라운드 자동화 배포를 하고 싶었다. 그럼 ..

Dev/AWS

[AWS] EC2 배포 일주일 삽질 스토리 (feat. 환경변수)

개발자들이 낭만이라고도 생각하는 '눈물 젖은 커피와 함께 며칠간 밤을 새우며 오류를 잡으려고 애쓰다가 전혀 생각지도 못했던 곳에서 간신히 찾아낸 작은 버그 하나의 추억'이라는 건, 사실 '진작에 충분한 테스트를 했었다면 쉽게 찾아냈을 것을 미루고 미루다 결국 커다란 삽질로 만들어버린 어리석은 기억'일 뿐이다.- 토비의 스프링  약 일주일 간의 고생이 방금 끝났다.. 끝이 안 보이던 문제가 해결되니까 허무하면서도 뿌듯하다..! 지난 일주일간 있었던 일을 적어보자면  1. 탄력적 IP 부여해 줘도 접속 안 됨인바운드 규칙으로 Port 열고 인스턴스에 JDK를 설치해서 해결했다. 처음에는 apache2도 설치했다가, 웹서버를 왜 사용했지..? 라는 의문과 함께 apache2는 삭제했다. 사실 헤매다가 네트워크..

Dev/AWS

[AWS] CPU 사용률 급증으로 인한 EC2 무한 로딩 해결

요즘 많이 우울하다.. 서버를 배포하고 있는데 열어둔 포트로는 접속이 되지만 API 연결이 안 돼서 일주일 가까이 붙잡고 있다.. 어떤 이유로라든 해결이 됐으면 좋겠다. 지금 해보고 있는 해결 방안은 zip 파일 대신 jar 파일을 배포하는 것인데 이 과정에서 ssh 연결이 필요하다. git clone ssh를 한 후 ./gradlew build를 실행해 줬는데 10분이 넘게 끝나지 않길래 커맨드 C로 강제 종료해 줬다.. 근데 그 이후 ssh 접속이 되지 않았다. 사진상으로는 터미널에서 접속해 본 것이 끝이지만 터미널 외에 EC2 인스턴스에 직접 연결도 여러 번 했다. 근데도 무한 로딩이 걸렸다.. ssh 접속이 아예 거부당한 적은 많은데 접속이 되지 않고 무한 로딩이 걸린 것은 처음이라 당황스러웠다..

yo0oni
기록 기록 기록