일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- DDD
- 플러터 개발
- Kafka
- JPA공부
- 기술면접공부
- Axon framework
- JPA스터디
- 스프링부트
- 코테공부
- 플러터 공부
- 자바공부
- 스프링
- nestjs스터디
- 스프링공부
- 기술공부
- 코테준비
- nestjs공부
- Flutter
- JPA
- JPA예제
- K8S
- 스프링 공부
- 프로그래머스
- querydsl
- 스프링부트공부
- 카프카
- 자료구조공부
- 알고리즘공부
- JPA 공부
- nestjs
- Today
- Total
목록분류 전체보기 (719)
DevBoi
Flutter로 Riverpod를 적용하여 개발을 진행해보자Riverpod는 누구나 알다싶이, 상태 관리에 대한 기술이다. 상태관리란, 데이터가 변경될때, 메모리관리 또는 UI 컴포넌트 영향등을 관리해주는 기술이라고 이해하면 편하다.야생의 개발자의 경우에는 그냥 일단 개발을 따라 해보고 천천히 이해하는데나도 약간 이런걸 좋아하는것같다? 일단 적용해보자 1. Riverpod 플러그인 추가flutter_riverpod: ^2.6.1 2. Riverpod 요소 StateState는 상태관리의 대상이 되는 Entity라고 이해하면 편하다.class SensorState { final double accX, accY, accZ; final double gyroX, gyroY, gyroZ; SensorStat..
AWS 세팅을 자동화 해보자자동화라기 보다는 Iac 도구로 형상을 유지한다고 보면 될 것 같다.테라폼 사용을 위한 로컬 세팅은 아래 글에서 참고해서 진행하자https://devboi.tistory.com/777 1. AWS 계정 accesskey생성* IAM 을 접속하면, root 계정 정보를 볼수 있다.* 액세스 키를 생성한다. 개인적으로 루트 사용자에게 활성 액세스키를 등록하여, 해당 액세스키로 연결한다.IAM에서 서브 계정을 생성, 정책연결을 하고, 해당 계정의 액세스키를 생성하여 접속 해도되지만 귀찮으니 루트로 한다.1-1. 결제 및 비용 관리 클릭한다1-2. 액세스키를 생성 하고, 정보를 잘 저장해둔다. 2. AWS 계정 연결2-1. aws configure2-2. 1번에서 생성한 액세스 키 ..
JPA는 엔티티를 생성하면 자동으로 테이블을 만들어준다.별다른 설정 없이 엔티티만을 만든다면, 테이블 + seq테이블의 구조로 생성이 된다. 1. Person, Person_seq 테이블이 된다.만약에 Person테이블에 데이터를 강제로 업데이트를 치거나, 데이터를 삽입하면해당 key에 대한 에러가 발생한다.duplicate key가 된다. 왜이럴까? Person_seq는 1을 보고있으나, Person에는 이미 1이 들어가 있는 경우가 되기 때문이다."이러한 경우에는 seq 테이블을 새로 만들거나, 시퀀스를 새로만들어 줘야한다" 아래처럼 하자, 참고로 이미 만들어진 시퀀스는 initvalue를 변경한다고해도, 값이 반영 되지 않는다즉, 덮어씌우지 않는다는 말이다. @Entity@Getter@Setter..
1. 설정terraform 설치 (mac기준)brew install terraform aws-terraform 설정 1) aws cli 설치curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"sudo installer -pkg AWSCLIV2.pkg -target /aws --version 오류 발생시 (파이썬 환경세팅)brew install --build-from-source python@3.12 2) aws 설정aws configure aws > console > 사용자root 권한으로 accessKey,secretKey 생성 terraform 로컬 공개키 생성 및 저장ssh-keygen -t rsa -b 2048 -f ~/...
1. Route 53 도메인 * Aws Route53 접속 > 호스팅 영역 생성하기 > 네임서버 생성* 도메인 구매처 > Route53에서 발급받은 NS레코드(네임서버) 정보 입력* Route53 A레코드 생성 (값에 ec2 ip 값 입력하기) -> (앞에 별칭 www와 빈값으로 2개해야 군말이 없음) 2.nginx 설치 sudo touch /etc/apt/sources.list.d/nginx.listecho "deb http://nginx.org/packages/ubuntu/ bionic nginx" | sudo tee -a /etc/apt/sources.list.d/nginx.listecho "deb-src http://nginx.org/packages/ubuntu/ bionic nginx"| su..
1) 테이블을 이미 만들어 버렸을경우이때는 사실 방법이 없다. 하나씩 인코딩 설정을 해주는 쿼리를 날려야한다. ALTER TABLE TABLE_NAME CONVERT TO CHARACTER SET utf8; 2) 테이블을 만들기 전인 경우RDS의 파라미터 그룹을 설정해주면된다.1) RDS > 파라미터 그룹 > 파라미터 그룹 생성을 한다.2) 생성한 파라미터의 기본값들을 수정해준다.* character 검색 > 아래 항목들을 UTF-8로 지정해준다. utf8 또는 utf8mb4로 해준다. 차이는 이모지 가능여부이다. * collation 검색 > 아래 값들을 utf8_general_ci로 설정한다.-collation_server-collation_connection
1) 변수 선언변수 선언에는 아래 3가지가 있다.var -> 함수 어디서든 접근을 할수 있어 잘 사용하지 않는다.let -> block scope로 저장, let은 값을 변경할수 있다const -> let과 같이 block scope로 저장, let과 다르게 값을 변경할 수 없다. 2) 타입 명시단순 변수let test1: string = "123123";let test2: number = 123;let test3: boolean = false;console.log(test1);console.log(test2);console.log(test3); 함수function test1(message: string): void{ console.log("gd");}function test2(message: nu..
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 결과 사실 이도저도 싫다고하면 플레이그라운드에서 문법적인걸 다 익히면 장땡이긴한다.대부분 웹이나 타입스크립트를 엮어서하는 프레임워크를 ..
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 ..
개인적으로 사용하고 싶어서 만든 채팅 서비스가 있다.아키텍처에 대한 구조는 아래와 같다. 그렇게 복잡하지 않다.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; ..