전체 글

Server

Linux 환경에서 서버작업 순서(Docker 설치하기)

아래 순서에 맞게 설치하면 됩니다. 서버 시작 후 1. 우분투 접속 2. ls로 디렉토리 확인 후 cd로 디렉토리 이동 3. git pull origin master 도커설치 1. curl -fsSL https://get.docker.com/ | sudo sh 2. sudo docker build -t image_name . 3. sudo docker images (도커 이미지 생성 확인) 4. sudo docker create --name container_name -p 8081(포트포워딩포트):8081(앱 포트) image_name //필요한 갯수만큼 생성 =>도커 이미지 생성 80포트는 nginx가쓰고 있으니 8081:8081 =>sudo docker create --name container_na..

Server

Linux 환경에서 Nginx 설정하기

Linux 환경에서 Nginx를 배포하는 방법입니다. 내 프로젝트를 ubuntu에 git clone 합니다.(Nginx 설치를 먼저해도 순서는 상관없습니다.) 아래의 순서대로 Nginx를 설치하고 설정파일로 접속합니다. 1. sudo apt-get update 2. sudo apt-get upgrade -y 3. sudo apt-get install nginx 4. cd /etc/nginx/sites-enabled 5. sudo nano default 6. change default file to git code(.conf) / 본인 환경에 맞게 아래와 같이 작성합니다. 7. sudo service nginx restart 이 순서로 하면 끝입니다. 생각보다 간단하죠

Java

[Java] 3. JWT와 bcrypt 적용하기

JWT와 bcrypt를 사용하기 위해 pom.xml에 // bcrypt관련 org.springframework.security spring-security-web 5.5.2 // JWT관련 io.jsonwebtoken jjwt 0.9.1 com.googlecode.json-simple json-simple 1.1.1 이 내용을 추가합니다. 자바 새 버전에서는 이것도 추가해야 jwt오류가 안난다네요. org.glassfish.jaxb jaxb-runtime 2.3.2 JWT와 bcrypt를 사용하기 위해 service 폴더에 JWTManager.java와 Bcrypt.java 파일을 만들어줍니다. Bcrypt부터 진행하겠습니다. Bcrypt.java package daily.coding.service; i..

Java

[Java] 2. RestController 작성

세팅된 환경이 잘 켜지는지 확인해봅시다. 디렉토리는 밑줄 친 demo까지 이동해야 합니다. 터미널에 아래 명령어를 입력합니다. ./mvnw spring-boot:run 짜잔 에러가 나네요. 포트가 없어서 그러니 포트 설정을 해줍니다. application.properties 파일로 이동합니다. 다른 언어에서 .env파일과 같은 역할입니다. 자신의 디비 정보를 입력해주세요. 그래도 에러가 날거에요 pom.xml에 mysql을 추가해줘야하기 때문입니다. mysql mysql-connector-java runtime 이 부분을 추가해줄게요. 다시 서버를 실행해보면 제대로 실행되는 것을 확인할 수 있네요. 이제 crud를 작성하기 위한 디렉토리 세팅을 하겠습니다. demo>src>main>java|daily|c..

Java

[Java] 01. 시작하기(Spring Boot With VSCode)

spring boot로 Java를 시작해보겠습니다. 에디터는 vscode를 사용하였습니다. 폴더명은 crud로 하여 프로젝트를 생성했습니다. 스프링 부트를 사용하기 위한 vscode extensions을 설치합니다. 저는 요정도로 설치하도록 하겠습니다. 스프링 부트 확장팩은 crud 작성에 필요한 @RequiestMapping 기능을 제공합니다. ctrl + shift + p 를 눌러 Command palette를 엽니다. 'Spring initalizr: Create a Maven Project' 를 선택합니다. 버전을 선택합니다. (아무옵션도 붙지 않는 버전을 선택해야 합니다.) 저는 안정된 버전중에 제일 최신버전인 2.5.3 선택하겠습니다. 언어는 당연히 Java겠죠 그룹아이디를 지정합니다. dai..

Server

Docker를 이용하여 Nginx 로드밸런싱하기

Nginx&Docker 콜라보레이션으로 로드밸런싱을 해보겠습니다. 프로젝트를 생성하고 index.js에 아래와 같은 내용을 작성했습니다. Dockerfile을 생성한 후 명령어를 이용하여 docker image를 추가합니다. 저는 hjng1이라는 이름의 이미지를 생성했습니다. 포트 번호 6000과 6001번으로 Nginx 로드밸런싱을 해보겠습니다. 도커 포트는 6000과 6001으로 하고 앱포트는 8081로 하여 도커 컨테이너를 생성했습니다. 컨테이너 이름은 각각 retry1과 retry2로 생성해주었습니다. 서버가 에러없이 잘 켜지는것을 확인했으면, Nginx설정을 해줍니다. nginx.conf 파일에서 upstream node_server를 아래와 같이 작성해줍니다. upstream node_serv..

AWS

Docker Compose를 이용하여 EC2환경에서 배포하기

자신의 프로젝트를 도커 컴포즈를 이용하여 AWS 환경에 배포해봅시다. 1.프로젝트 세팅 우선 각각 클라이언트와 서버에 도커 파일을 생성해줍니다. 루트에 docker-compose.yml 파일을 생성하여 도커 컴포즈 컨테이너를 만들기 위한 세팅을 합니다. 도커 파일 생성방법은 공식문서를 참고했습니다. https://docs.docker.com/get-started/08_using_compose/ git에 프로젝트를 push 합니다. 2. aws 세팅 AWS에서 데이터베이스는 RDS를 이용하여 연결하고, EC2 인스턴스를 생성해서 ppk키를 만들어옵니다. 제 블로그에도 자세한 방법이 포스팅되어 있습니다. https://daily-coding-diary.tistory.com/5 1.aws EC2 인스턴스 생성..

Node.js

[Node.js] RabbitMQ

목표 : RabbitMQ를 이용하여, 데이터를 임시로 저장하고 확인해봅시다. RabbitMQ는 디비 또는 데이터 처리에 문제가 생겼을때 데이터를 임시로 처리해줄때 많이 사용합니다. 예를 들면, 채팅방에 한명은 실시간 접속 상태지만 한명은 접속 상태가 아닐때, 중간에 들어오면 채팅 내용이 보여야하는데 데이터가 느리게 들어오면 실시간 통신에 문제가 됩니다. 그래서 실시간 채팅은 항시, RabbitMQ 혹은 Redis 처럼 캐싱기능이 있는 저장소에 담을 필요가 있습니다. 우선적으로 RabbitMQ 서버를 설치하여, 실행시켜야합니다. https://www.rabbitmq.com/#getstarted 완료되었으면 디렉토리를 생성하여 기본 노드 서버를 세팅합시다. app.js const express = requi..

hyun_ji
코딩일기