테스트 코드는 작성한 코드가 의도대로 동작되는지, 예상하지 못한 문제가 없는지 확인하기 위해 작성하는 코드이다.테스트 코드는 개발 공부를 할 때 미루는 경우가 많지만, 유지보수와 기능 작동에 신경 쓸 필요 없는 환경이 되므로 공부해보는 걸 추천한다. 테스트 코드는 기본적으로 프로젝트에서 src > test에 존재하고 있다. 다양한 패턴이 있는데, 그 중에서도 given-when-then 패턴을 알아보자. given-when-then 패턴given-when-then 패턴은 테스트 코드를 세 단계로 구분해서 작성하는 방식이다.1. given - 테스트 실행 준비 단계2. when - 테스트 진행 단계3. then - 테스트 결과 검증 단계. 예를 들어 새로운 변수를 저장하는 코드를 테스트한다면 다음과 같다...
이제 본격적으로 스프링 부트 애플리케이션을 만들어 봅시다. 전체적인 구조구조는 기본적으로 이렇게 됩니다. 웹 브라우저가 /test라는 get을 요청하면,TestController 클래스는 외부 요청을 분기하여 적절한 작업을 처리하고 값을 다시 반환(TestService)합니다.이는 여느 API의 Request / Response 작업과 같습니다. 그와 붙어있는 TestService 클래스는 데이터베이스 조직이나 비즈니스 로직을 메서드 기반으로 처리하게 됩니다.이것은 요청이 어떤 요청인지 판단하고, 그 요청에 맞는 작업을 실행하는 작업입니다. 이때 만약 Member 클래스가 있다면, MemberRepository 인터페이스가 실제 테이블과 매핑합니다.여기서 매핑된다는 건 객체와 테이블 간 연결되어 실제 데..
이제 본격적으로 Github Action 사용한다. 그 전에 docker compose 파일을 만들어야 하기에, 만약 컨테이너 안에 접속되어 있다면 exit를 이용해 ubuntu 서버로 나가자. vim docker-compose-blue.ymlyml 파일은 다음과 같이 작성한다. version: '3.8'services: blue: image: docker 레포지토리 사용자 이름/live_server:latest container_name: blue ports: - "8080:8080" environment: - PROFILES=blue - ENV=blue그리고 green을 위해서 하나 더 만든다.cp로 copy한다. cp docker-compose-bl..
이번 시간에는 지난 글에 이어 nginx의 세팅을 바꿔준다.nginx의 세팅을 바꿔주려면 일단 nginx 컨테이너 안에 접속을 해야 한다. 다음과 같은 명령어를 실행한다.docker exec -it nginxserver bash-it는 옵션이다. bash 환경에서 표준 입출력을 하기 위해서 설정해준다. 이러면 앞의 설정이 Container ID로 변경된다. ls를 입력하면 etc 폴더가 있는 것이 보일 것이다.cd etc/ + Tab을 2번 누르면 폴더의 목록을 볼 수 있다.cd etc/ + Tab 이 중에서 우리는 nginx/ 폴더를 볼 수 있고, 해당 폴더로 간다. 그리고 conf.d를 붙여 경로로 이동한다.cd etc/nginx/conf.d이제 ls를 보면 default.conf 파일이 하나 보이는..
가정 - 클라우드에서 EC2나 이런 인스턴스를 할당 받고, 유일한 공인 IP가 있다는 가정 하에 진행한다.(AWS의 경우 탄력적 IP 설정) 시작하기 전 팁 : 해당 클라우드에 쉽게 접속하려면 .sh 파일을 만들어서 접속하면 된다. ssh ~/.ssh/sikaro.pem ubuntu@공인 ip혹은ssh -i ~/.ssh/sikaro.pem root@공인 ip# ssh {pem키 경로/pem키 이름.pem} {사용자명@공인 ip} 이때 ~/경로는 윈도우의 경우 사용자 > user의 경로가 잡힌다.해당 경로에 pem 키를 넣어주면 된다. 그런 뒤에 sh 파일을 우클릭 > 터미널에서 열기 하면 실행이 된다.안된다면 git bash를 열고 .sh 파일을 드래그해서 올리면 명령어가 올라간다. 이제 본격적으로 들어..
자바 17버전부터 추가된 문법들입니다. 텍스트 블록여러 줄의 텍스트를 작성할 때 """로 감싼 텍스트를 사용해서 여러 줄의 텍스트를 표현할 수 있습니다. String query17 = """ SELECT * FROM "items" WHERE "status" = "SALE" ORDER BY "price"; """; formatted() 메서드값을 파싱하기 위해서 사용합니다. 해당 기능이 없었을 때 아주 불편했다고 합니다.(확실히 다른 언어에 비교해서 힘들었을 것 같긴 합니다.)String textBlock17 ="""{ "id : %d "name" : %s,}""".formatted(2, "juice") 레코드레코드는 데이터 전달을 목적으로 하는 객체를 더 빠르고 간편하게 만듭니다.레..