프로젝트(53)
-
Jenkins로 배포 자동화 해보기
다시 돌아왔습니다. 운좋게도 회사에서 AWS EC2로 애플리케이션 배포까지 진행하고 있는데, 자동화가 이루어지지 않은 상태기 때문에 자동화 + 무중단 배포라는 임무가 주어졌습니다. 힘들겠지만 7월 말 회사 테스트 서버부터 적용시키는 것을 목표로 우선 개인 프로젝트를 통해 익혀보려고 합니다. 첫번째 테마는 자동화 입니다. 우선 Git에 commit하면 build, test, deploy가 자동으로 구동되는 CI/CD 툴을 정했습니다. Jenkin를 사용하기로 했고 그 이유는 회사에서 무료버전을 원할 수 있기도 하고, 설정이 까다로운 툴을 써볼수록 나중에 Travis를 사용해도 편할 거 같기 때문입니다.(Travis는 Production 버전은 유료입니다) 그리고 현재 서버/프런트/앱 배포 방식을 파악하고,..
2021.07.17 -
1-3. 회원가입 - 비밀번호 암호화(Jasypt Encryption)
프로젝트를 배포까지 성공시켰지만 코드 리뷰가 필요한 부분들이 남아있습니다. 이력서와 포트폴리오를 작성하면서 코드 수정도 하고 있습니다. 프로젝트를 하면서, 필요한 기능들을 빨리 찾아 적용시키고 후속 공부를 하지 않았습니다. 시간을 단축시키려구요. 그런데 기업에서 원하는 개발자 상은 문제가 생겼을 때 해당 라이브러리나 API를 깊게 공부해 내 지식으로 습득할 수 있는 사람인 것 같습니다. '학습'을 해야할 것 같습니다. 그렇다고 입사지원을 늦추거나 하진 않을 겁니다. 계속 이력서도 보완하고 학습하면서 꾸준히 문을 두드려보겠습니다. 회원가입 비밀번호 암호화 기능 : 회원가입 시 입력한 비밀번호를 암호화해 DB 저장합니다. 반대로 DB 저장된 비밀번호를 로그인 시 입력한 비밀번호와 비교해 처리해줍니다. Jas..
2021.03.24 -
10. AWS EC2 + Spring boot (9) - AWS RDS Spring boot 연결방법과 택한 이유
서버 배포를 구상하기 전까진 in memory H2 DB를 사용했었습니다. 하지만 지금은 AWS RDS를 통해 MariaDB로 사용하고 있습니다. AWS RDS의 장점은 백업 자동화, 12개월 무료, AWS 클라우딩이라는 것들이 있습니다. 또한 보편적인 MySQL, MariaDB 엔진도 사용할 수 있습니다. 연결방법부터 말씀드리자면 jojoldu님의 블로그를 참고하시면 좋습니다. 그리고 DB의 CRUD는 MySQL Workbench로 조작합니다. 참고자료 사이트: jojoldu님 블로그 4) 스프링부트로 웹 서비스 출시하기 - 4. AWS EC2 & RDS 구축하기 이번 시간엔 SpringBoot를 운영할 AWS 환경을 구축하겠습니다. (모든 코드는 Github에 있습니다.) Tip) 운영 서버는 크게 ..
2021.03.08 -
10. AWS EC2 + Spring boot (8) - AWS S3 이미지 파일 업로드
업데이트: 210311 웹사이트에 필요한 외부 파일(img, txt)은 로컬 폴더에서 관리하고 있었습니다. 하지만 서버 배포를 AWS EC2를 통해 ubuntu에서 하므로 Amazon S3를 이용하기로 결정했습니다. 주요 결정원인은 AmazonS3 SDK 메서드(putObject, deleteObject)를 이용해 추가/삭제 관리를 편리하게 하고 로컬 메모리를 아낄 수 있기 때문입니다. S3 설정방법 1. S3 버킷 만들기 AWS 튜토리얼은 공식 사이트를 참고해도 되지만, 이코딩님의 생활코딩을 추천드립니다. AWS 강좌가 잘 정리되어 있습니다. 참고자료: AWS S3 생활코딩 강좌 AWS S3 - 생활코딩 본 수업에서는 AWS의 파일서버 서비스인 S3(Simple Storage Serivce)에 대해서 ..
2021.03.04 -
10. AWS EC2 + Spring boot (7) - Spring boot 프로젝트 실행파일 변경기: WAR to JAR
현재 Spring boot 프로젝트를 Maven을 이용해 WAR 파일로 build 한다음 Tomcat Manager GUI에 업로드 하는 방식으로 배포했습니다. 하지만 너무 번거롭습니다. 코드를 변경할때마다 로컬에 WAR파일을 Tomcat 페이지에 클릭 업로드 해야하기 때문입니다. 그러던 중 jojoldu님의 AWS EC2 & Spring boot로 만드는 웹 애플리케이션 블로그를 보게 되었고 ubuntu에서 Github를 연동해시켜 코드만으로 JAR 파일을 서버에 배포하는 방법을 보고 채택했습니다. 정말 편합니다!! 참고자료: jojoldu님의 Spring boot 프로젝트 저도 Linux를 잘 모르지만 JAR파일 실행 커맨드를 shell script 파일로 만들어 모든 코드를 칠 필요없이 호출해주기만..
2021.03.03 -
10. AWS EC2 + Spring boot (6) - war 파일 tomcat 실행 에러
이전 글에서 tomcat web application 매니저 GUI를 통해 WAR 파일을 deploy하고 실행시켰을 때 뜨는 에러를 vi(nano) tomcat.../logs/catalina.out 파일을 열어 로그를 확인해보았습니다. 해결하려는 과정에서 잘 되지 않은 부분도 있었고 근본적인 해결책이 있었다는 것도 알 수 있었습니다. 프로젝트를 만들 때, 프로그래밍 언어, Framework 디자인 패턴은 물론이고 그외 기술스펙 설정(DB, API, Library)와 서버 배포방식(AWS, Docker, Git...)은 만들면서 정하는 것이 아니라 처음부터 청사진을 설계하고 구현을 시작해야 효율적인 코드가 나오며 건축 중에 재설계 하는 비효율이 없을 거라는 것을 경험을 통해 알게 되었습니다. 발생한 에러 ..
2021.02.24