전체 글 28

[CI/CD] Github Action을 통한 CI/CD 파이프라인 구축 with AWS EC2, Java Spring, Docker

CI/CD란CI , Continuous Integration (지속적 통합) : 각각의 개발자의 코드를 지속적으로 통합하고, 자동으로 빌드와 테스트를 실행하여 코드 품질을 유지하는 과정CD, Continuous Deployment (지속적 배포) : 테스트를 통과한 코드를 자동으로 배포(또는 배포 준비)하여 신속하고 안정적으로 서비스에 반영하는 과정Github Action을 사용하여 CI/CD 파이프라인을 구축하였다.Jenkins를 사용해보려 했지만 aws ec2 프리티어에서 메모리 공간 부족으로 인해 Github Action으로 구현하였다. 아래 내용들은 미리 준비되어있다고 가정1. 프로젝트 구현2. aws ec2 환경 준비 with Docker설치3. 프로젝트 Dockerfiles 작성 참고로 Doc..

[Docker] Docker을 사용하여 Java Spring 프로젝트를 AWS EC2서버에 배포하기

Docker을 사용하여 Java Spring 프로젝트를 AWS EC2서버에 배포하는 과정입니다. 아래 내용들은 미리 준비되어있다고 가정1. 프로젝트 구현2. aws ec2 인스턴스 생성3. ssh 접속 가능4. 로컬 Docker 설치 및 Docker hub 가입 전체적인 과정 소개1. 프로젝트에서 Dockerfile 생성 후, 이미지를 Docker Hub 에 Push2. aws ec2 ssh 에서 Docker Hub에 있는 이미지를 Pull3. ec2에서 컨테이너 작동Docker Hub 레포지토리 생성Docker 이미지를 저장할 레포지토리를 Public 으로 생성합니다.Docker Hub Image PushDockfile이 생성되어있는 루트경로에서 해당 명령어를 실행합니다.docker build --bu..

[Spring] jwt, security를 사용하여 로그인 구현 -1 : spring security 란?

Spring Security 란?Spring security 공식문서를 보면 다음과 같이 나와있다.Spring Security is a powerful and highly customizable authentication and access-control framework. It is the de-facto standard for securing Spring-based applications. Spring Security is a framework that focuses on providing both authentication and authorization to Java applications. Like all Spring projects, the real power of Spring Security..

JavaSpring 2025.02.09

[Docker] Docker란? Docker 사용법, 도커 실습

Docker는 애플리케이션을 컨테이너라는 가볍고 독립된 환경에서 실행할 수 있게 해주는 도구다.컨테이너(Container)는 코드랑 실행에 필요한 라이브러리, 설정 등을 다 묶어서 하나의 패키지처럼 만드는 것이다. 이렇게 만든 하나의 패키지를 Container Registry에 저장한 후, 다른 사람들과 함께 사용한다. 이걸 쓰는 이유는 "내 컴퓨터에서도 잘 돌아가는데 왜 저 사람 컴퓨터에서는 안 돼?""내 컴퓨터에서도 잘 돌아가는데 왜 서버에서는 안 돼?"를 방지하기 위해서다. Docker을 사용하기 위해선 세 가지를 알아야 한다. DockerFile이미지를 만들기 위한 설정파일이다. 쉽게말하면내 애플리케이션 구동에 필요한 정보들을 정의한 것이다. 애플리케이션을 만들기 위한 레시피라고 생각하면 된다. ..

[Flutter] flutter 버전 관리 fvm 사용법, 특정 프로젝트에 버전 적용법

맥 환경에서 fvm을 사용하여 flutter sdk 버전 관리하는 방법이다. 특정 프로젝트를 빌드할 때, 특정 버전을 사용해야 하는 경우 내 로컬 자체의 flutter 버전을 변경하지 않고,해당 프로젝트에서만 특정 버전을 사용해야 할 필요가 있을 때 fvm을 사용한다. 설치brew install fvm 환경변수 등록터미널에서,vi ~/.zshrc를 한 후,export PATH=$PATH:/Users/사용자이름/fvm/default/binexport PATH="$PATH":"$HOME/.pub-cache/bin"export PATH=/opt/homebrew/bin:$PATH를 추가한다.i 누르면 수정 모드, exc누르고 :wq 하면 저장하면서 닫힙니다.이후source~/.zshrc를 꼭꼭 해줘야 적용된다...

Flutter 2025.01.17

[Git] git stash란? git stash 사용법 명령어 모음

git stash 란?작업내용을 임시로 따로 저장해놓을 수 있는 기능이다.이 기능을 알기 전과 알고 난 후의 git 활용 능력에는 큰 차이가 있다.git stash 언제 사용하지?내가 실제로 git stash를 쓰는 상황은 다음과 같다.A브랜치에서 작업 중 다른 브랜치로 이동이 필요한 상황, 커밋하기는 부담스러울 때작업중 pull을 받아야 하는 상황에 안전하게 받기 위해서작업 중 새로운 방식으로 테스트를 위해 잠시 백업 용도git stash 명령어▷ git stash작업 내용을 임시 저장한다.새로 추가된 파일(untracked files)은 저장되지 않는다. ▷ git stash -u작업 내용을 임시 저장한다.새로 추가된 파일(untracked files)도 같이 저장된다.-u를 붙여서 사용한다. ▷ g..

[Flutter] VS Code Dart Data Class Generator Extention 사용법

요즘 flutter에서 모델을 선언할 때  json_serializable나 freeze를 통해 code generator로 구현하는 경우가 많다.하지만 code generator에 의존하는 것은 좋다고만 할 수 없다. 왜냐하면 패키지에 의존하는 것이기 때문에, 패키지 지원이 중단될 경우 엄청난 유지보수가 필요할수가 있다. 또한 generate 된 코드 파일은 git에 올라가지 않도록 하는 경우가 대부분이다. 따라서 프로젝트를 가져와서 build runner를 실행하기 전까지는 숨겨진 코드이기 때문에 문제가 발생할 수 있다.  따라서 VS Code에서 지원하는 Dart Data Class Generator를 사용해보았다. https://marketplace.visualstudio.com/items?ite..

Flutter 2024.08.26

[Flutter] Riverpod 사용법, 간단 예제, riverpod generator

Riverpod을 사용하여 개발할 때 StateProvider나 StateNotifierProvider 등을 직접 작성하지 않고,riverpod_annotation을 통해 코드를 생성하는 방법이다. 공부할때는 StateProvider나 StateNotifierProvider을 작성하는 방법으로 공부하였지만, 실제 프로젝트에서 사용할때는 code generation을 통해 작업을 하였다. 사용 패키지flutter_riverpod: ^2.4.9riverpod_annotation: 2.3.3riverpod_generator: 2.3.9build_runner: 2.3.3 flutter pub add flutter_riverpod &&flutter pub add riverpod_annotation &&flutte..

Flutter 2024.08.25

[Flutter] part,library를 활용하여 지저분한 상단 import 없애기

flutter로 개발을 하다보면 위 사진처럼 상단에 import 코드가 너무 많아져서 지저분한 경우가있다. 이 글은 여러 파일에서 사용되는 import 코드를 하나의 파일로 모으고, 지저분한 import코드들을 정리하기 위해library와 part를 사용하여 import코드를 없애는 방법이다. library와 part를 사용하여 import문을 최소화 하는 것은 dart공식문서에도 가이드라인으로 나와있다.https://dart-ko.dev/guides/language/effective-dart/usage 설명 코드는 따로 작성해보았다.   임의로 Class 3개를 만들었다.    그리고 다음과 같이 3개의 Class를 main.dart 와 home.dart에서 사용하기위해 import를 하였다.보다시피..

Flutter 2024.08.21

[Flutter] GridView 커스텀 하기 (flutter_staggered_grid_view)

Flutter에서 기본으로 제공해주는 GridView는 childAspectRatio 속성을 통해 가로세로의 비율을 정하기 때문에,Item의 width와 height를 지정해줄 수 없다.하지만 flutter_staggered_grid_view를 사용하면 지정해줄 수 있다. https://pub.dev/packages/flutter_staggered_grid_view flutter_staggered_grid_view | Flutter packageProvides a collection of Flutter grids layouts (staggered, masonry, quilted, woven, etc.).pub.devflutter_staggered_grid_view 패키지를 사용한다. import 'pac..

Flutter 2024.08.19
반응형