728x90

매일 꾸준히 작업을 하고싶지만 못하는 관계로  개인 프리티어로 사용하기에 비용문제도 있기에 중간은 샐력하고  소스 수동 배포 부분만 따라서 작업해보기로 한다.

 

FrontEnd/ BackEnd  소스 수동 배포

 

1. ec2를 생성 및 key pair 는 이전 생성한 my ec2 key pair  를 활용하여 ec2 생성

 

 

 

2. yum 업데이트 후 nginx 설치

(실습 강의 에서는  nginx 설치를 amazon-linux-extras 하라고 되어 있지만 이는 이제 사용 불가)

sudo yum update -y
sudo yum install nginx -y

 

nginx 설치 확인

rmp -qa | grep nginx

 

 

3.aws 공식문서 참조하여 node js 설치 

https://docs.aws.amazon.com/ko_kr/sdk-for-javascript/v2/developer-guide/setting-up-node-on-ec2-instance.html

 

자습서: Amazon EC2 인스턴스에서 Node.js 설정 - AWS SDK for JavaScript

노드 설치는 현재 Amazon EC2 세션에만 적용됩니다. CLI 세션을 다시 시작하는 경우 nvm을 사용하여 설치된 노드 버전을 활성화해야 합니다. 인스턴스가 종료되면 노드를 다시 설치해야 합니다. 다음

docs.aws.amazon.com

4. 메이븐 설치(메이븐 프로젝트의 경우)

 

yum install java java-devel maven

 

mvn 명령어 로 설치 확인

mvn --version

 

5. mysql 설치 

sudo yum update

wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

sudo yum localinstall mysql57-community-release-el7-8.noarch.rpm

sudo yum install mysql-community-server

sudo yum install mysql

 aws lunx 단순 설치시 안됨

 

 

진행 하는 부분과 다르게  mysql --version 대신 아래 명령어로 확인

rpm -qa | grep mysql

 

6. git 설치 이후 testCode 가져오기

 

git clone https://github.com/janghomoon/frontend-test

 

7. 소스 경로 npm 설치 및 build

npm install
-- 설치 완료 후
npm run build

 

*현재 소스코드 node 버전 문제로 설치된 20 버전이 아닌 16버전으로 다운그레이드 

 

아래 커맨드 참조 

nvm 가져오기 (노드 버전 매니저)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

nvm 설치 확인
command -v nvm
nvm 로드 
source ~/.bashrc

nvm 설치
nvm install <버전>  
 
나는 16 버전

nvm install 16



설치된 버전 확인 및 기존 버전 제거 

# 설치된 버전 목록 확인
nvm list  
# 사용할 버전 선택
nvm use <버전>  
node -v  


nvm uninstall

 

위 버전 다운그레이드 이후 다시 재빌드 

 

 

 

 

8.  실행 

* nohuhb으로 백그라운드에서 실행
nohub npm start &


실행 확인 
netstat -ntlp

이후 curl 연결 확인

curl -v localhost:3000

 

만약 nohup 설치되어 있지만 실행 안될경우

설치여부 확인
which nohup

echo $PATH

export PATH=$PATH:/usr/local/bin  # nohup이 설치된 경로로 변경



영구 저장 필요 시

echo 'export PATH=$PATH:/usr/local/bin' >> ~/.bashrc
source ~/.bashrc

 

아래는 curl 결과

 

 

 

 

9. nginx conf 설정

미리 작성한 conf 파일 이동

cp default.conf /etc/nginx/conf.d/

빌드 파일 복사 이동 
cp -r buid/* /usr/share/nginx/html/

실행
sudo  systemctl start nginx

확인
 systemctl start nginx

 

 

front 접속 결과

 

 

 

728x90

'인강 정리 > DevOps & MSA' 카테고리의 다른 글

소규모시스템 구축(5)  (0) 2024.10.21
소규모시스템 구축(4)  (1) 2024.10.19
소규모시스템구축(2)  (1) 2024.08.01
소규모시스템 구축(1)  (1) 2024.08.01
VPC Peering  (0) 2024.07.30
728x90

중첩 클래스에는 4가지가 있다. 정적 멤버 클래스, (비정적)멤버 클래스, 익명 클래스, 지역 클래스 이중 첫번째를 제외한 나머지는  inner 클래스 이다. 메서드 밖에서도 사용해야 하거나 메서드 안에 정의하기엔 너무 길다면 멤버 클래스로 만든다. 멤버 클래스의 인스턴스 각각이 바깥 인스턴스를 참조한다면 비정적으로, 그렇지 않으면 정적으로 만들자. 중첩 클래스가 한 메서드 안에서만 쓰이면서 그 인스턴스를 생성하는 지점이 단 한 곳이고 해당 타입으로 쓰기에 적합한 클래스나 인터페이스가 이미 있다면 익명 클래스로 만들고, 그렇지 않으면 지역 클래스로 만들자.

728x90
728x90

저도 많이 쓰고 실무에서 많이쓰 는 kafka를 좀 더 정확하게 알 기위해 정리 하고자 작성한다.

카프카(Kafka)는 파이프라인, 스트리밍 분석, 데이터 통합 및 미션 크리티컬 애플리케이션을 위해 설계된 고성능 분산 이벤트 스트리밍 플랫폼이다.

 

 

kafka 의 탄생은 linked In 에서 탄생

 

 

 

kafka의 특징

 

 

 

kafka 사용 되는 곳

 

 

카프카 이외에도 rabbitMQ, pulsar 등이 있지만 성능 상 카프카가 가장 좋음(사용량이 적다면 rabbitMQ도 고려할만한다)

아래는 벤치마크 표

 

728x90

'인강 정리 > Kafka 완전 정복' 카테고리의 다른 글

kafka 기본 개념 및 구성(4)  (1) 2024.10.31
kafka 기본 개념 및 구성(3)  (0) 2024.10.30
kafka 기본 개념 및 구성(2)  (0) 2024.10.21
kafka 기본 개념 및 구성(1)  (1) 2024.10.18
728x90

태그 달린 클래스로 열거 하기 보단  계층주고 클래스를 만들어 상속하여 처리하는 방법으로 사용해야 한다. 

기존 클래스가 태그 필드를 사용하고 있다면 계층구조로 리팩터링하는걸 고민하자

728x90
728x90

인터페이스는 타입을 정의하는 용도로만 사용해야 한다. 상수 공개용 수단으로 사용하지 말자.

728x90
728x90

자바 8 이전에는 기존 구현체를 꺠뜨리지 않고는 인터페이스에 메서드를 추가할 방법이 없었다.  자바 8이후 부터 디폴트 메서드 가 제공되어 추가가 가능해졌다.

인터페이스를 설계할 때는 여전히 세심한 주의를 기울여야한다. 

인터페이스를 릴리스한 후라도 결함을 수정하는게 가능한 경우도 있겠지만, 절대 그 가능성에 기대서는 안된다.

728x90

+ Recent posts