2023.02.01.WED

ronglong·2023년 2월 1일
0
  1. Cloud 운영 환경 구성 - 클라이언트 배포
  • 로컬 환경에서 프론트엔트 부분(정적 웹 페이지) 빌드하기
    • nvm(Node version Manager) : 시스템에 여러 개의 nodejs 를 설치하고 사용할 버전을 쉽게 전환할 수록 도와주는 shell script
    • node.js 설치
    • npm(Node Package Manager) For build
    • 앱 환경 변수(.env)에 서버 주소 설정
  • 정적 웹 사이트 호스팅 용 버킷 생성
  • 빌드된 정적 웹 페이지를 버킷에 업로드
  • 퍼블릭 액세스 차단 설정 해제, 접근 권한 설정(버킷 정책)
  1. Cloud 운영 환경 구성 - DB 배포
  • DB 생성 후, 로컬 터미널에서 DB 연결
    - mysql -u [마스터 이름] --host [엔드 포인트 주소] -P [포트 번호] -p
  • 서버 코드의 application.properties 파일에 환경 변수 설정 (in EC2 터미널)
    - DB url, id, password / S3 주소
  • 클린 및 빌드 후 실행
  1. 기타
  • 터미널에서 이전에 사용했던 단어 검색하는 법
    - history | grep {검색하고픈 단어}
  • 페어님이 iterm2 추천해주셔서 설치하고 세팅함 ㅎㅎ
  • 로컬에서 깃 연결을 위한 SSH 생성 후, 개인키를 EC2에 복제해두면 EC2에서도 git clone 하여 연결 가능. 단, chmod로 쓰기 권한 살려야 복제 가능.
  • S3, IAM USER 서비스는 글로벌 단위 서비스. 고유한 버킷 이름 사용.
  1. 삽질 기록
  • 실습할 때, 처음에 EC2 터미널에 들어갔더니, 어제 git clone한 파일이 보이지 않았다. 알고보니 인스턴스 연결 후의 기본 위치로 들어가서 ls 조회했기때문.
    cd ~ 명령어로 홈으로 가서 조회하니 잘 조회되었다.
  • bash 명령어로, bash 쉘에서 CLI 조작하면 좀 더 편함
  • 처음에 실행했을 때 제대로 돌아가지 않았는데, '혹시 어제 백그라운드에서 서버 실행시켜 놓은 게 아직 돌아가서 그런가?' 하고, 8080 포트 사용하는 프로세스 확인하고 전부 kill한 후에 다시 돌렸더니 잘 돌아갔다! 예상 적중.
  • 나의 경우, kill할 때, sudo 안 붙이면 에러 났다.
    https://gksdudrb922.tistory.com/155

///

  • 리팩토링하다가 삽질 2시간,, ㅋㅋㅋㅋ 엔티티 이름을 MemberEntity라고 했더니,
    테이블에 데이터 들어갈 때도 안 예쁘고, 변수 길이가 길어져서 가독성이 떨어졌다.
  • 그래서 Member로 리팩토링하는데, 하다가 서비스 클래스에서 변수 이름 잘못 써서 반환을 이상한 걸 한 거였음..ㅋㅋ
  • 애초에 수동으로 바꿀 필요 없고, 클래스 이름 바꾸기 하면 관련 변수 다 바꿀 수 있도록 설정이 나온다. 이걸 한 박자 늦게 알아버림,, ★
  • 그렇게 2시간 삽질 끝나고 테스트 만들기 시작했다.
내가 포스트맨에서 만났던 에러

could not execute statement; 
SQL [n/a]; constraint [null]; 
nested exception is org.hibernate.exception.ConstraintViolationException: 
could not execute statement

///

  • 테스트는 given-when-then만 생각나서 그걸 토대로 검색해서 만들어 나갔는데, 약간 코드에서 뭔가 빠진 느낌이 들고 돌아가지도 않음ㅋㅋㅋ
  • 아무래도 한 번 방향과 흐름을 잡고 코드를 짜는 게 나을 것 같아서, 동기님께 강의를 요청했고, 테스트 자체가 너무 어려운 주제라서 같이 공부하다가, 내게 나타나는 에러가 너무 이상해서 어느새 사람들이 모여 듦..ㅋㅋㅋ
나타난 에러

Execution failed for task ':test'.
No tests found for given includes: [CoffeeOrderWebApp.practice.member.
controller.MemberControllerTest.postMember](filter.includeTestsMatching)

* Try:
Run with --stacktrace option to get the stack trace.
Run with --info or --debug option to get more log output.
Run with --scan to get full insights.
  • 아예 테스트가 안 돌아가서, build Tool 설정을 Gradle이 아닌 IntelliJ Idea로 바꾸고, DTO에서 @build 어노테이션 쓰면 기본 생성자가 안 만들어져서, @NoArgsConstructor, @AllArgsConstructor 붙이고 돌렸더니 돌아갔다.
  • 대체 왜 Gradle 설정에서는 안 돌아가는지 다같이 의문이 들어, 결국 내 깃헙에 push하고, 스터디원분들이 가져감ㅋㅋㅋㅋㅋㅋㅋㅋㅋ 내 미천한 코드를 뿌리게 되었다. 글을 쓰는 지금(자정)까지도 계속되는 중,,,

<느낀 점>
오늘 실습할 때 내가 예상한 오류가 적중하여 금방 잘 해결되어서 기분이 좋았다.
저녁에는 리팩토링하다가 변수 하나 잘못 입력해서 삽질 2시간 하고,,ㅋㅋ

밤에는 테스트 만들면서 스터디원 분들이랑 같이 공부하다가,
에러 뜬 내 비루한 코드 파일 다 뿌려서 공유하기... ㅋㅋㅋ 수치스러움 그 자체
내가 연습하면서 만드는 코드를 이렇게,, 공유하다니,, 공개처형,, ㅋㅋㅋㅋ

나의 깃 개인 레포지토리에 참여자 초대하는 것도 처음 해보고,
다같이 내 에러에 관심 가져주셔서 너무 감사하고, 많이 배웠다.
같이 얘기하는 거 넘 즐겁당 ㅎ0ㅎ

내일도 밤에 다같이 테스트 공부하기로 함!

0개의 댓글