분류 전체보기 (717) 썸네일형 리스트형 [TypeScript] 스터디 환경 세팅 1) 설치node설치 이후, tsc로 해당 파일을 컴파일 할 수 있다.tsc가 동작하지않을때는 아래 명령어로 설치sudo npm i -g typescript 빌드 시킬 폴더에서 해당 커맨드 입력, config 파일 자동 생성 확인tsc --init 2) 컴파일아래와 같이 간편하게 컴파일하면, 동일 js파일이 생성된다.(옵셔널 적으로, js파일이 필요할때 사용)tsc (파일명)ex. tsc study01.ts 이후 해당 파일을 아래와 같이 실행 시키면 실행이된다.(js파일을 생성한 경우, ts라는 확장자를 빼도 실행이된다)node ex. node study01.ts 결과 사실 이도저도 싫다고하면 플레이그라운드에서 문법적인걸 다 익히면 장땡이긴한다.대부분 웹이나 타입스크립트를 엮어서하는 프레임워크를 .. [AWS] Github Actions로 NextJs,EC2,Docker CI/CD 구축 github action을 통해 브랜치에 푸시가 되면 자동으로 배포가 되도록 구축해보자 1. Git hub access-token 발급Settings > Developer Setting을 통해, 아래 Classic Token을 생성하고, 잘 보관해 둔다. 2. 자동화 원하는 Repo의 secret key 연동 원하는 Repo > Setting > Secrets and variables> Actions 진입, 아까 만든 access token을 바탕으로2번째 이미지처럼 키를 생성 3. Runner 설정 New self-hosted runner 클릭 해당 하위에 나오는 명령어를 ec2에 입력 * shaSum 오류 발생시 패키지 업데이트sudo yum install perl-Digest-SHA -y .. [AWS] Nginx + LetsEncrypt(https) + NestJs + Flutter web 개인적으로 사용하고 싶어서 만든 채팅 서비스가 있다.아키텍처에 대한 구조는 아래와 같다. 그렇게 복잡하지 않다.NestJs가 소켓처리와 MongoDb와의 통신을 통해 데이터 API 역할을 3000, 8080 포트로 나눠서 지원하고Flutter web 은 80포트로 왔을때 처리되는 static Resource로 서버에 위치에 있다. 물론, 여러개의 서버를 나눠서 두는 방법도 있지만, 이건 사용자 트래픽이 몰리는 경우 고려하도록 하자 1) nginx 세팅EC2 제일 앞단에서 Nginx 를 둔다.80,443에 대한 인증서 처리 및 리버스 프록시 설정에 대한 내용들을 다룬다 1-1) /etc/nginx/site-avavilbles/defaultserver { listen 80 default_server; .. 리버스 프록시와 프록시 차이 은근히 잘 모르는 주제이다. 알더라도, 정확하게 물어보면 잘 모르더라 그래서 정리를 해서 누가 물어보면 이거봐라 라고 하려고한다. 프록시란 여러 시스템 용어이다. 리눅스나, 인프라 단 뿐 아니라 JPA, 애플리케이션에서도 쓰인다.쉽게 얘기하면 "대리수행자" 이다. 이번 포스팅에서는 예로 인프라에서 알아보자 포워드 프록시는 위와 같다. 리소스 서버와 클라이언트 서버가 분리되어있다고 가정하고해당 프록시 서버가 대신 해당 서버와의 통신을 수행하여, 클라이언트의 요청을 수행하는 것이다.클라이언트의 보안이 필요한 경우, 해당 방식을 주로 사용한다.왜냐면 리소스 서버에서는 프록시를 통해서 값을 전달 받고 전달하기떄문에 클라이언트의 정보에 대해 추적하기 어렵다, 자, 그러면 리버스 프록시는 어떤것이냐? 주로 외부.. [Docker] Ubuntu에 Docker, Docker-compose 세팅 Docker 설치sudo apt update -ysudo apt-get install ca-certificates curl gnupg lsb-releasecurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"apt-get updatesudo apt-get updatesudo apt-get install docker-ce docker-ce-cli containerd.iodocker -vsudo service do.. [Java] Record 패턴 불변 DTO의 성격인 Record와 DTO간의 매핑을 코드를 자동생성해주는 라이브러리 Mapstruct에 대한 정리를 해보자 1. RecordRecord는 불변성을 보장하는 타입이다. 따라서 신뢰성이 높아그래서 주로 Request,Response,Configuration에 대한 정보를 담아서 사용한다. 아래와 같은 레코드의 소스가 있다고 가정하자public record MemberRequest( @Schema(description = "닉네임", example = "스미스") String nickname, @Schema(description = "프로필 이미지 링크", example = "이미지 주소") String imgUrl, @Schema(description = "이름", example = .. [Docker] 리눅스 용량 확보 및 도커 저장공간 최적화 EC2를 사용하다가 용량 초과로 인해 서버가 움직이질않는다.도커가 동작할떄 기본적으로 로그를 작성하는데, 이 로그가 꽉차서 작성할수없자, 무한 대기 + 재시작 상태가 되는것이다. 아래와 같은 방법으로 조치 및 최적화를 진행해보자 1. 용량 확인 1-1.어디에서 많은용량을 사용하고있는지를 알아내자 df 로 간단하게 현재 용량이 100%라는 것을 확인 한다. 1-2. 어디 경로에서 많은 비중을 차지할까?df -h해당 어떤 디렉토리에서 사용 차지하는지 알수 있다. 나는 overlay2 하위 도커 디렉토리에서 거의 다썼다. 1-3. 어떤 파일 때매 그럴까?해당 경로로 우선 이동하고 현재 디렉토리에서 가장 많은 비중을 차지하는 상위 5개의 리스트만 보기du -hs * | sort -rh | head -5 이도.. [Flutter + Socket] Flutter + NestJs + Socket 서비스 개발하기 채팅 관련 웹 서비스를 개발했다. 다뤄보지 않은 프레임워크를 선택해서 극단으로 몰았던게 조금 후회되지만 무튼 관련 개발 내용을 정리해서 포스팅한다. 우선 개발한 서비스의 아키텍처는 아래와 같다. 그림은 귀찮으니 대충 1. Flutter web : 사용자가 사용하는 화면이다. 2. nestJs 포트 두개 (3000,8080) 을 기반으로 채팅과 기초정보를 제공하는 백엔드 프레임워크이다. 3. mongo : 비정형디비로 RDB를 쓰려다가 채팅에 특화된 디비를 쓰기로 했다. 4. mongo express : mongo디비를 볼수있는 콘솔이다. 5. fcm : 사용자가 백그라운드, 포그라운드 일때 메시지 알림을 웹푸시로 주거나 미수신 메시지를 카운트를 증가시킨다. 아래의 로직으로 간단하게 구현했다. 더 심도있는.. 이전 1 2 3 4 5 ··· 90 다음