본문 바로가기

분류 전체보기

(7)
AWS SES 사용한 no-reply@domain 메일 전송 현재 참여하는 프로젝트에서 기존 메일인증은 Gmail api를 사용하여 수신자와 메세지를 토큰과 함께 전송하는 방식이었습니다. 이러한 방식은 발신자가 드러나므로 회신을 통한 피드백 수령에는 용의하나 인증 메일 전송 실패등의 이유로 반환되는 메일이 많아 인증은 no-reply 발신자로 설정할 필요성이 있었습니다. 때문에 기존 AWS 서비스와 연동하여 비교적 간편하게 사용할 수 있는 (EC2에서 사용할 경우 62,000건 까지 무료!) Amazon Simple Email Service(SES)를 사용하여 이러한 문제점을 해결해보려고 합니다. 1. 이메일 등록 우선 ses 콘솔에서 발신을 위해 사용할 이메일을 등록해봅니다. 입력한 주소로 도착한 메일을 확인해 링크를 눌러주면 인증이 완료됩니다. 2. 샌드박스 ..
[Spring] VO 객체를 map으로 변환하기 note API를 만들다보니 모델 객체를 response 할 때 추가적인 데이터를 넣어 주어야 할 상황이 계속 생겼는데 편리하게 전환해주는 메소드가 없어 다른 코드들을 참고하여 직접 구현하였다. 다른 프로젝트에서도 사용할 일이 있을것같아 포스팅한다. Map으로 변환하고 싶지 않은 컬럼들은 String[]로 전달해주면 된다. 구현 코드 DomainToMap.java /** * vo를 map형식으로 변환해서 반환 * @param vo VO * @return * @throws Exception */ public static Map domainToMap(Object vo) throws Exception { return domainToMapWithExcept(vo, null); } /** * 특정 변수를 제외해서..
AWS 환경에서 LetsEncrypt 와일드 카드 인증서를 발급받아 적용하기 코인서비스SSL 인증서 재발급 과정 (ec2 + alb + cloudfront + route53 + certbot) 인스턴스 여러개를 사용하여 서비스를 운용중이라면 각 인스턴스와 서브 도메인을 위해 인증서를 발급받고 관리해주는것은 매우 어려운 일입니다.때문에 letsencrypt에서 제공하는 와일드카드 인증서를 발급받고 request를 받는 맨 앞단의 alb에 이를 등록하여 여러 인스턴스와 sub domain에 ssl 인증서를 한번에 적용해 보았습니다. 인증서를 발급받을 인스턴스에 ssh 연결로 접속합니다. (여러 인스턴스를 사용 할 경우 어느 인스턴스인지는 상관x) certbot clone을 받습니다. yum install -y git git clone https://github.com/certbot/..
[Spring] IoC / DI 컨테이너와 AOC 개념 정리 Spring IoC,DI 학습내용 컨테이너 (Container) 컨테이너는 인스턴스의 생명주기를 관리하며 생성한 인스턴스에게 추가적인 기능을 제공합니다. 예를 들어 Servlet을 실행해주는 WAS(Web Application Server)는 Servlet 컨테이너를 가지고 있다고 말합니다.WAS에서는 URL로 특정 서블릿에 대한 요청을 받으면 메모리에 캐시되어있는지 확인 후, 최신버전이 있거나 메모리에 올라가있지 않을 경우 서블릿을 컴파일하여 메모리에 올린 후 실행합니다.서블릿 클래스를 작성하는것은 개발자이지만 메모리에 올리고 실행하고 사용이 끝난 서블릿을 terminate 하는 작업들은 WAS의 Servlet 컨테이너가 대신해주고 있습니다. IoC (Inversion of Control) 제어의 역전..
Laravel sortBy 주의할 점 sortBy 포스팅 GET api를 작성하면서 생성 시점에 관계없이 order, order_sub 두가지 integer 컬럼으로 정렬하여 json 형식으로 반환하려고 하였지만 몇가지 문제를 겪어 정리해 남겨둔다.시도한 방법은 아래와 같이 특정 id값의 모델에서 sortBy 메소드를 사용해 정렬된 배열을 넘겨주는 것이었다. $items = $list->items->sortBy('order'); return response()->json([ "items" => $items ]); 하지만 결과는 sortBy 가 적용되지 않고 생성순으로만 반환되었고 이는 sortBy가 처리해주는 정렬 방식 때문이었다. 관계된 데이터를 뽑아올때 옵션을 주면 데이터들이 key : value 값 배열로 반환되는데 sortBy는 배열..
[GitHub] Student Developer Pack 등록하여 무료 private repo 만들기 GitHub_education 개인 프로젝트를 올려놓고 커밋하기 위해 GitHub에서 제공하는 원격 저장소를 많이 사용한다.가입만 해도 무료로 사용가능한 대신 외부에 공개되지않는 private 프로젝트를 생성하기 위해서는 유료 서비스를 결제해야 하는데,특히 관리 미숙으로 키설정이나 환경설정이 들어있는 파일까지 같이 커밋해버릴 경우 해당 서버의 취약점을 노출하거나 굉장한 금전적 타격을 입을수도 있다..하지만 대학생이라면 경우 학교 이메일을 통한 간단한 인증만으로 유료 repo를 생성할 수 있다!바로 GitHub에서 교육용으로 제공하는 Student Developer Pack이다. 위 링크로 접속하면 다음과 같은 화면이 뜨는데 get your pack을 누르고 로그인하면이메일 주소를 추가할수있다.이미 학교 ..
Git의 기초: 초기화와 add, commit 생성 방법 git 사용법 버전 관리 프로그램 Git 깃 사용의 필요성 컴퓨터를 쓰는 사용자들은 형태는 다르지만 파일들을 생성하고, 수정할 필요성이 생긴다. 하지만 하나의 파일을 수정해나가면서 이전 버전을 유지할 필요성이 있을 경우, 조금씩 다른 여러 파일들을 관리하는것은 점점 복잡해질 것이다. 때문에 예전부터 다양한 버전관리 프로그램이 존재했었고 그 중 현재 가장 많이 쓰이고 있는 git 프로그램에 대해 이야기해보려 한다. 1. Git 설치 깃을 설치하기 위해서는 공식 홈페이지에 나와있는 다음 링크를 따른다. Window의 경우 시스템 환경 변수(path)까지 추가해야 설치가 완료된다. 2. 시작을 위한 기초 명령어 git 프로그램은 버전 관리를 위한 다양한 기능들을 제공하지만 내용 확인이나 간단한 수정을 Bash..