1. docker run 이미지 : 이미지 다운&실행 docker : 도커 클라이언트 언급 run : 컨테이너 생성 및 실행 이미지 : 컨테이너를 위한 이미지 2. docker run 이미지 (커스텀 명령어) : 이미지 내부에 있는 시작명령어 무시하고 커스텀 명령어 실행 docker : 도커 클라이언트 언급 run : 컨테이너 생성 및 실행 이미지 : 컨테이너를 위한 이미지 커스텀 명령어 : 원래 이미지가 가지고 있는 시작 명령어를 무시하고 여기에 엤는 커멘드를 실행 ex) ls, ping localhost ※ ls 커멘드는 현재 디렉토리의 파일 리스트 표출 3. docker ps : 현재 실행중인 컨테이너 나열 ps : process status ※ docker images, docker images ..
Mockito를 이용한 테스트 코드 작성시 발생한 이슈를 간단히 정리하고자 합니다. @Table(name = "category") @Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Category extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "name") private String name; @Column(name = "parent_id") private Long parentId; @Builder public Category(String name, Long pare..
회원 정보 수정에서 썸네일 업로드가 필요했습니다. 파일을 Gloud에 저장하여 업로드 및 다운이 필요했기에 현재 사용하고 있는 Google Cloud Platform을 선택하였습니다. 적용하는데 발생한 이슈위주로 적는 글이라, 자세한 설정은 아래 블로그를 참조해주세요. jyami.tistory.com/54 GCP Cloud Storage + Springboot 연동하기 이번 외주를 맡은 내용이 Google Cloud Storage를 이용해서 file을 업로드, 다운로드하는 API 기능을 구현해서 이 내용을 정리하고자 한다. Cloud Storage를 다루는 방법으로 Google Cloud Console, Cloud SDK를.. jyami.tistory.com 설정 gradle 설정을 다음과 같이 했습니다..
Actuator은 애플리케이션 관련 데이터 및 모니더링 정보를 제공해준다. 단순히 Actuator만 사용한다면 JSON 형식 혹은 XML로 확인할 수 있다. 하지만 GUI로 보고 싶다면 Actuator 기반 UI인 Spring Boot Admin을 사용하면 된다. (오픈소스) 자세한 내용은 백기선님의 "우아한 스프링 부트"를 참고하길 바란다. www.youtube.com/watch?v=z0EaPjF3pCQ 서버 애플리케이션 우선 admin 전용 서버를 띄우기 위해 프로젝트를 생성해야 한다. 멀티모듈로 해도되지만 필자는 그냥 start.spring.io를 통해서 프로젝트를 하나 생성했다. 라이브러리로 Spring Boot Admin (Server)를 추가해준다. ※ 주의할점 이것 때문에 약간 헤맸는데, 클..
테스트 코드 디버깅 리펙토링 커스텀 단축키 설정하기 테스트코드 alt + enter 테스트 코드 - 클래스명 에서 단축키 이용해야됨 - ctrl + shift + T로 생성 가능 테스트 코드로 이동 ctrl + shift + T - 메소드명 위치에서 단축키 클릭하면 바로 이동 - 다시 한번 누르면 원래 클래스로 되돌아옴 선택된 테스트 실행 ctrl + shift + F10 - 실행시킬 테스트코드에 포커스를 맞춘다음 실행 정지 ctrl + F2 리팩토링 F6 클래스 이동 - 바꾸고 싶은 패키지로 변경 - 이렇게 하게 되면 해당 클래스를 import하고 있는 모든 위치가 바뀜 ctrl + shift + F6 변수의 타입 변경 - 기본타입으로 변경가능 - 메소드타입도 변경 가능 ctrl + F6 메소드의 시그..
※ 단어수정1 Ctrl + shift + alt + J 파일내 동일단어 한번에 수정 ※ 단어수정2 Shift(⇧) + F6 : 클래스, 변수, 파라미터 이름을 일괄적으로 변경해주는 단축키 입니다. ※ 단어수정3 Alt + J : 수정 원하는 단어 블럭 씌운뒤 클릭 Live template psvm : public static void main(String[] args){ } sout : System.out.println(); iter + enter : foreach문 자동 생성 itar + neter : for문 자동 생성 ctrl + J를 눌러서 라이브 템플릿에서 지원하는 기능들을 확인할 수 있음 public static void main(String[] args){ } sout : System.out..
Rest API 서버에서 OAuth2.0을 사용하여 소셜 로그인을 구현해야 했습니다. 프론트는 리액트를 사용했기에 SPA방식을 고려해야 했습니다. 보통 아래와 같은 흐름으로 구현이 됩니다. 그림상으로는 1~3번 까지는 SPA에서 처리한다음 4번에서 code와 redirect_url을 반환합니다. 현재 진행하는 프로젝트에서는 5번의 access_token과 id_token값까지 프론트에서 받은 다음, access_token을 백엔드 서버에 제공하여 소셜 정보를 받는 과정으로 변경하였습니다. 구글 소셜 로그인 API를 구현하는 방식은 아래 블로그에 잘 설명되어 있습니다. (accessToken 값을 제공받는 과정까지 있습니다.) antdev.tistory.com/68 [Google Login API] Goo..
프론트에서 유효성 검사를 수행하지만, 백단에서도 유효성 검사를 수행해야 안전한 애플리케이션을 만들 수 있습니다. Spring Boot의 Validation은 가장 많이 쓰이는 유효성 검사 라이브러리 입니다. 적용하는 방법은 구글링하면 수많은 포스팅이 존재하니 생략하고 바로 이슈 및 해결을 설명드리겠습니다. public class UrlDto { public static class Request{ @Data @Builder @NoArgsConstructor @AllArgsConstructor public static class Save{ @NotBlank(message = "Link 필드는 필수입니다.") @Pattern(regexp="^((http(s?))\\:\\/\\/)([0-9a-zA-Z\\-]+\..
github.com/woowacourse/java-racingcar-precourse woowacourse/java-racingcar-precourse 자동차 경주 게임 미션을 위한 저장소. Contribute to woowacourse/java-racingcar-precourse development by creating an account on GitHub. github.com 우테코 프리코스의 미션은 요구사항에 맞춘 코드를 작성해야 합니다. 그 중 하나는 다음과 같습니다. else를 왜 쓰지 말라는 것일까요? if-else문이 너무 많으면 읽기가 매우 어려울뿐더러, 조건에 대해 명시적이지 않습니다. 따라서, 함수 내에서(if문) return을 함으로서, 뒤의 코드로 진입하지 않아 else문을 사용할..
기본1 Alt + 1 프로젝트 창 포커스 한번 더 누르면 프로젝트 창이 사라지고 에디터 창에 포커스가 맞춰짐 esc 프로젝트창 -> 에디터 창으로 돌아오기 space 프로젝트 창 미리보기 프로젝트 창에 포커스가 간 상태에서 space 클릭 ctrl+shift+f12 에디터 창 키우기 - gradle창, 프로젝트 창이 다 축소됨 - 다시 누르면 켜놓은 창이 다시 활성화 ctrl+tab 에디터 창 이동 - 에디터에서 켜놓은 창들 중에서 원하는 창 이동하고싶을때 - ctrl키를 계속 누른상태서 tab을 누르면 항목이동 새파일 생성 에디터에서 : ctrl+alt+insert : smemo랑 겹처서 나는 안됨; 프로젝트 창에서 : alt + insert 커서이동 단어별 이동 : ctrl + 왼쪽, 오른쪽 방향키 ..