수바리의 코딩일기
![[JUnit5][SpringBoot][Kotlin] Exception테스트하기 (assertThrows)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKfk9y%2FbtrTgBAYRCQ%2F195UrXxCxB43M0UKyuLxT0%2Fimg.png)
[JUnit5][SpringBoot][Kotlin] Exception테스트하기 (assertThrows)
JUnit4 Junit4에서 exception 테스트는 @Test(expected=기대하는예외)를 통해 가능하다. (JUnit5와 비교하기 위한 예시코드이므로 정확하진 않을 수 있음) @Test(expected = NotEnoughStockException::class) fun 상품주문_재고수량초과() { val member = createMember("사용자") val book = createBook("도서명", 10000, 10, "저자명", "12345") val orderCount = 11 orderService.order(member.id!!, book.id!!, orderCount) fail("예외가 발생해야 한다."); } JUnit5 @Test에 expected를 쓸 수 없게 되어있어 다른..
![[Node.js][Typescript] node_modules/@types/express-serve-static-core/index.d.ts:745:13 - error TS1005: ';' expected.](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbLFJTe%2FbtrTg4ITukS%2Fdjvln5wtnzUktBIPXMEMX0%2Fimg.png)
[Node.js][Typescript] node_modules/@types/express-serve-static-core/index.d.ts:745:13 - error TS1005: ';' expected.
오랜만에 예전에 했던 Node.js + Express + Typescript 프로젝트를 실행했더니 여러 오류가 났다...!! 😵 node_modules/@types/express-serve-static-core/index.d.ts:745:13 - error TS1005: ';' expected. ... node_modules 안에서 오류가 난거라 패키지문제인데, 구글링을 통해 이 이슈를 찾았다. https://github.com/DefinitelyTyped/DefinitelyTyped/issues/62300 @types/express-serve-static-core/index.d.ts Typescript build error (version 4.17.31) · Issue #62300 · Definitel..
![[Git] git clone 폴더 지정하기 (현재 위치, 폴더 이름 수정)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcfyLFb%2FbtrLihwa1HX%2FkdeOxesE0l5qBStQcdgSPk%2Fimg.png)
[Git] git clone 폴더 지정하기 (현재 위치, 폴더 이름 수정)
git clone을 가장 기본으로 사용하면 이렇게 쓸 수 있다. $ git clone {url} 이렇게하면 기본적으로 clone된 폴더가 repository이름과 같다. 현재 위치에 clone하기 이 방법을 몰랐을 땐 clone을 했다가 폴더안에 폴더가 생기기도하고, 일부러 상위 폴더로 이동해서 clone하기도 했었다. 방법은 아주 간단하다! $ git clone {url} . 이렇게 하면 현재 위치에 clone이 된다. 폴더 없이!! repository와 다른 이름으로 clone하기 이 방법을 몰랐을 때도 그냥 clone하고 폴더 이름을 수동으로 바꾸거나, 그냥 repository이름의 폴더로 사용했었다. $ git clone {url} {설정할 폴더이름} 이렇게하면 폴더 이름을 지정할 수 있다. 너무..
![[Spring Boot] No tests found for given includes: 에러](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvgT9v%2FbtrJ1O9wggn%2F8gOHxzzevfmF0rzdbMzkp0%2Fimg.png)
[Spring Boot] No tests found for given includes: 에러
Spring Boot로 테스트 작성 후 IntelliJ내의 테스트 실행버튼을 눌러 테스트를 시도했다. 그런데... Execution failed for task ':test'. > No tests found for given includes: [test코드 경로](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. 이렇게 떴다..!! 분명 @Test가 붙은 테스트들이 존재하는데...왜 없다고 하는 것인가? 인프런에 나와..
![[Spring Boot] Error creating bean with name 'entityManagerFactory' defined in class path resource](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1Jc3t%2FbtrJZIbnmfI%2FR0FzUyiWF0nmF4TUNh0QEk%2Fimg.png)
[Spring Boot] Error creating bean with name 'entityManagerFactory' defined in class path resource
Spring Boot, Kotlin, JPA, H2를 이용해서 API 테스트코드를 작성중이었다. Error creating bean with name 'entityManagerFactory' defined in class path resource Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.service.spi.ServiceExcepti..
![[Nginx] proxy pass 설정하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAUv3U%2FbtrDqWlBR0g%2FQjD0d4QwQL9gwhIcn5mEZk%2Fimg.png)
[Nginx] proxy pass 설정하기
nginx기본설정으로 node.js, spring등의 서버를 3000번, 8000번 등으로 돌리게되면 http://ip주소:port번호 의 주소로 접속하게 된다. 이때 port번호를 일일히 써주지 않는 방법! 은 proxy_pass를 설정해주는 것이다. 특정 도메인 또는 ip로 접속했을때, 연결해줄 내부 포트번호를 명시해두면 매핑해주기때문이다. cd /etc/nginx/sites-available vi {서버설정파일이름} 적용할 서버파일을 열어준뒤 proxy_pass http://localhost:{port번호}; 위 이미지와 같이 location / 블록안에 port번호가 적힌 proxy_pass를 입력해주면된다. 기존에 있던 try_files $uri $uri/ =404;는 주석처리해준다. 끝
![[EC2][Ubuntu] E212: Can't open file for writing](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6z25R%2Fbtryd1szvEg%2FpBUpHEJlTlky2uQM0ZJylk%2Fimg.png)
[EC2][Ubuntu] E212: Can't open file for writing
문제 파일 편집을 위해 vi로 파일을 편집하고 저장하는데, 에러메세지가 나왔다. $ vi filename 에러메세지 E212: Can't open file for writing 원인 내가 파일을 편집하려고 한 위치에서 ubuntu사용자에게 편집 권한이 없었기 때문이다. 해결방법 1. vi 앞에 sudo를 붙여준다. $ sudo vi filename 2. sudo su로 root사용자로 전환하여 파일을 편집한다, $ sudo su $ vi filename
![[AWS][Codedeploy] missing credentials - please check if this instance was started with an iam instance profile](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fca0MZN%2FbtrA68OEDv3%2F13QyoMvCWmixyOZjrQqoNk%2Fimg.png)
[AWS][Codedeploy] missing credentials - please check if this instance was started with an iam instance profile
Codedeploy를 이용하여 EC2에 배포를 시도했는데, Codedeploy 콘솔에서 CodeDeploy agent was not able to receive the lifecycle event. Check the CodeDeploy agent logs on your host and make sure the agent is running and can connect to the CodeDeploy server. EC2에서 에러 로그를 확인해야할 것 같아서 로그를 확인해보았다. tail -F /var/log/aws/codedeploy-agent/codedeploy-agent.log 에러로그 missing credentials - please check if this instance was started ..
![[Javascript] const 변수 push(), pop()](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FX9Nqf%2FbtrzZM0GTvx%2FdVZbvJWrk9DTjhia13HHU0%2Fimg.jpg)
[Javascript] const 변수 push(), pop()
개발 중, 배열1에서 배열2로 각 요속들을 옮기는 코드에서 당연히 let으로 빈 배열을 선언했는데, eslint error가 났다. push하는 코드가 있는데 왜 경고가 나지? const는 값 변경이 불가능한 것 아니었나? 라는 생각이 들었다. 하지만, const로 선언하고 push(), pop()을 해도 잘 동작한다. 이유를 찾아보니, const는 선언과 동시에 할당이 이루어질 때 사용하는 것으로, 재할당이 불가능하다는 특징이 있는데 push(), pop()의 경우 배열을 다른 값으로 교체하는 것, 재할당하는 것이 아닌, 기존 배열 원본을 수정하는 것이므로 가능하다는 것이다. 배열은 포인터로 선언이 되어있는데, push, pop은 포인터를 바꾸는 것이 아닌 같은 포인터의 값만 변경시키는 것이다. +덧붙..
![[Github Actions][Codedeploy] CI/CD 구축하기 (1)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEkfV0%2FbtrA4Sl5InK%2FY6ntWDDUiCKDALWtHtLKV1%2Fimg.png)
[Github Actions][Codedeploy] CI/CD 구축하기 (1)
Github Actions와 AWS Codedeploy를 이용해서 CI/CD를 구축해보았다. Travis CI, Jenkins등은 사용해보지 않았지만 Github actions로 시작해보는 것도 괜찮은 것 같다. 자동배포라고하면, 구축하는 것 자체에 시간이 너무 뺏길것 같고, 구현하기 바빠서 미뤘었는데 처음 한번만 제대로 해놓으면 그 다음부터는 작은 부분들만 수정해서 바로 적용할 수 있기때문에 처음에 시간을 들여서라도 한번 해보는게 좋은 것 같다고 느꼈다! 이번 포스팅에서는 Github Actions와 Codedeploy사용을 위한 세팅(AWS S3, EC2, Codedeploy등)을 진행한다. AWS EC2 환경은 Ubuntu 20.04이다. 1. S3 버킷 생성 Github Actions에서 EC2에..