전체 글 555

Docker로 Redis 배포하기

이번 포스팅에선 도커를 이용해서 Redis를 배포하는 방법에 대해서 알아보도록 하겠습니다. 배포는 아래와 같은 순서로 진행됩니다. docker, docker-compose 설치 Redis 이미지 다운받기 Redis configuration 깃 클론 docker compose 작성 docker container 띄우기 잘 접속되는지 확인 이번 포스팅은 앞선 포스팅과 마찬가지로 EC2 인스턴스가 있다고 가정합니다. 또한 도커를 돌리기 위해서는 EC2를 medium으로 만드시는 것이 렉 없이 편안하게 구현하실 수 있습니다. medium은 한달에 5만원정도의 과금이 있습니다. Redis 배포 1. docker, docker-compose 설치 apt-get update sudo apt-get install do..

DevOps/Docker 2023.06.10

리눅스 기본적인 명령어

이번 포스팅에선 리눅스에서 사용하는 기본적인 명령어에 대해서 정리해볼까합니다. 바로 보시죠 리눅스 명령어 pwd 현재 작업중인 디렉토리 정보를 출력합니다. $ pwd /home/itholic cd 경로 이동, 절대 경로와 상대 경로 모두 가능합니다. $ cd /home/itholic/mydir $ pwd /home/itholic/mydir ls 디렉토리 목록을 확인합니다. $ ls testfile1 testfile2 testfile3 cp 파일 혹은 디렉토리를 복사합니다. 디렉토리를 복사할 때는 -r 옵션을 줘야합니다. $ cp testfile1 testfile_cp $ ls test dir testfile1 testfile_cp mv 파일 혹은 디렉토리를 이동시킬 때 사용합니다. 진짜 이동시킬 때도 사..

DevOps/AWS 2023.06.09

도커 주요 명령어 (컨테이너와 이미지 관련)

이번 포스팅에선 도커의 주요 명령어에 대해서 알아보도록 하겠습니다. 아주 간단한 명령어들만 있으니 후에 추가할 수 있을 것 같습니다. 바로 시작해보죠 컨테이너 관련 명령어 현재 정지된 컨테이너 확인 docker ps -a 현재 동작중인 컨테이너 확인 docker ps 컨테이너 삭제 docker rm ${컨테이너ID}, ${컨테이너ID} 이렇게 복수개도 삭제할 수 있음 컨테이너로 접속 docker exec -it ${컨테이너 이름} bash 이미지 관련 명령어 이미지 보기 docker images 이미지 삭제 docker rmi ${이미지ID} 컨테이너를 삭제하기 전에 이미지를 삭제할 경우 docker rmi -f ${이미지ID}

DevOps/Docker 2023.06.09

AWS ECR에 docker image push하기

이번 포스팅에선 AWS ECR에 도커 이미지를 푸쉬하는 방법에 대해서 자세히 포스팅해보도록 하겠습니다. 이번 포스팅에선 AWS EC2가 있다고 가정하고 docker가 EC2에 설치되어있어야 합니다. 순서를 대략적으로 말씀드리자면 IAM 생성 및 정책 추가 (IAM 생성 시 주는 csv 파일을 반드시 가지고 있어야 함) AWS CLI 설치 AWS CLI 프로필 설정 Dockerfile 생성 ECR로그인, docker image 빌드, docker image 태깅, docker push 그럼 한번 시작해보도록 하죠! ECR에 docker image push 1. IAM 생성 및 정책 추가 이번 포스팅에선 IAM 생성에 대한 내용은 알려드리지 않습니다. IAM을 생성하는 방법은 구글링하시면 잘 나와있으니 그 ..

DevOps/AWS 2023.06.09

AWS 클라우드 생태계 알아보기

AWS 클라우드는 정말 많은 서비스를 클라우드 서비스로 제공하고 있습니다. AWS의 클라우드 생태계는 정말 복잡하고 이름도 왜이리 어려운게 많은건지 뭐부터 알아야할지 답답합니다. 제가 답답했다는 뜻이구요. 답답해서 AWS 클라우드 생태계에 대해서 알아봤습니다. 바로 시작해보죠 AWS Cloud EC2 (Elastic Compute Cloud) EC2는 클라우드에서 가상 서버를 제공해주는 서비스라고 생각하시면 됩니다. 이러한 가상 서버는 인스턴스라는 이름으로 더 많이 알려져있습니다. 그리고 이 인스턴스들은 마치 물리적인 서버같이 작동합니다. EC2는 굉장히 유연하게 서버를 관리할 수 있다는 것이 특징입니다. CPU 파워를 조절할 수 있고, OS도 선택할 수 있으며, 메모리의 양도 정할 수 있고, 저장소의 ..

DevOps/AWS 2023.06.08

MySQL 에서 MySQL로 DBeaver 이용해서 데이터 마이그레이션 진행하기

이번 포스팅에서는 MySQL에서 MySQL로 데이터를 마이그레이션하는 방법에 대해서 포스팅하도록 하겠습니다. 이번 마이그레이션의 특징은 기존 데이터가 완전히 Overwrite 해버리기 때문에 데이터가 존재하는 상태에서 진행하는 마이그레이션은 더 나중에 해봐야할 것 같습니다. 그럼 마이그레이션 시작하도록 하겠습니다. DBeaver로 마이그레이션 먼저 복제하고싶은 데이터베이스를 오른쪽 클릭해서 도구 > Dump database를 클릭합니다. 마이그레이션할 테이블을 선택해야합니다. 디폴트는 모든 테이블이 선택됩니다. 그리고 "다음"을 눌러서 내가 복제할 데이터가 어디에 저장되는지 알아야합니다. 저는 C드라이브에 Users에 user군요. start를 누르면 해당 경로에 sql파일이 있을겁니다. 하지만 에러가 ..

Docker 로 MySQL 생성 후 외부 연결

이번 포스팅에선 Docker를 이용해 MySQL을 설치하고 외부 연결까지 해보도록 하겠습니다. 사전 준비로 ec2가 준비되어있어야 합니다. 또한 ec2의 크기를 medium으로 설정하셔야합니다. 그래야 docker를 돌렸을 때 렉이 안걸린다고 하네요. ec2 설치는 아래의 링크를 확인해주세요. https://coding-review.tistory.com/160 aws 배포 ec2 (1) : 모놀리식 배포 우선 aws ec2에 들어간다. 인스턴스 시작을 클릭! 더 많은 AMI 찾아보기를 클릭 후 우분투 리눅스를 둘중 하나 클릭 조금 내려가다 보면 키 페어를 선택하라고 나오는데 이부분은 새 키페어 생성을 coding-review.tistory.com 이제 시작해보죠! 1. Docker 설치 먼저 도커를 설치..

DevOps/Docker 2023.06.06

Mockito 프레임워크를 이용해 스프링 단위테스트 진행하기

이번 프로젝트에서 단위테스트를 해야할 일이 생겨서 알아보던 중에 Mockito에 대해서 알게 되었습니다. 스프링을 공부한지 만으로 2년이 되어가지만 아직까지 Mockito를 이용해 테스트 케이스를 만드는 법을 모른다는 사실에 반성하게 되었습니다. 많은 개발자 선배님들이 TDD를 외치셨는데 저는 그걸 지키지 못한 것 같아서 조금 아쉽지만... 지금이라도 TDD를 실천하고자 이렇게 포스팅 적어봅니다. 이번엔 Mockito를 어떤 방식으로 사용해야 하는지 그리고 주요 문법은 무엇이 있는지에 대해서 알아보도록 하겠습니다. Mockito Mock 이라는 단어는 가짜, 허구의 라는 뜻입니다. 즉 Mock 객체를 만들어 (가짜 객체를 만들어) DB의 접근 없이도 자신의 코드의 논리적인 부분을 체크하는 방법이 바로 M..

Spring/Spring 2023.06.02

스프링 부트 3.0 마이그레이션 가이드

이번 포스팅은 스프링 부트가 얼마전 3.0이 됨에 따라 바뀌게 된 점 중 저에게 해당하는 점만 정리해보겠습니다. 자세한 내용은 이곳! https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide Spring Boot 3.0 Migration Guide Spring Boot. Contribute to spring-projects/spring-boot development by creating an account on GitHub. github.com 스프링 부트 3.0 1. JavaEE에서 JakartaEE로 변경 javax 패키지에 있던 것들이 전부 jakarta로 변경되었습니다. 때문에 만약 JPA를 사용하신다면 ..

Spring/Spring 2023.06.02

면접 준비 : 스프링 시큐리티

Q. 스프링 시큐리티의 동작 방식에 대해서 설명해주세요. A. 먼저 Proxy Chain Filter가 필터를 만듭니다. 그리고 프록시로 생성된 필터가 request를 인터셉트합니다. 인터셉트한 request로 인증을 진행하고 인증이 끝나면 Security Context를 업데이트합니다. 업데이트함과 동시에 인가가 진행되고 Exception을 핸들링 한 다음 사용자의 요청을 핸들링합니다. Q. 스프링 시큐리티의 인증 방식에 대해서 설명해주세요. A. 먼저 request와 걸맞는 필터가 작동합니다. form 형식의 request는 UsernamePassowrdAuthenticationFilter가 작동하고 OAuth 2.0의 형식은 OAuthLoginAuthenticationFilter가 작동합니다. 그리..