http 서버 구현하기 미션을 하고 있다. 진행하면서 @GetMapping, @PostMapping 등으로 메소드 실행 분기처리를 하고 싶어졌다. 그래서 작성하는 Method 단위의 커스텀 어노테이션 만들기 1. 어노테이션 정의 @interface로 어노테이션을 정의한다. 메타 어노테이션을 정의한다. @Target: ElementType.METHOD, ElementType.FIELD 등으로 다양하게 어디에 적용할 어노테이션인지 정의할 수 있다. @Retention: 런타임에도 참조할 수 있게 RetentionPolicy.RUNTIME 으로 해준다. 이것 역시 컴파일을 기준으로 언제 참조 가능한지 설정해 줄 수 있다. CustomAnnotation 참고 블로그 이번 경우에서는 path라는 속성으로 uri을..
기술적인 것들 - 도커 - AWS - VIM - JPA - Spring - 환경설정 - 네트워크 개념 - CI/CD 등을 직접하거나 해 놓은 것을 보고 많이 배웠다. 뒤로 갈수록 더 환경설정 부분에 치중하느라 자바 코드 작성은 다른 미션 때보다 덜 하게 된 것 같다. (사실 1주일 방학동안 안해서 기억이 잘 안난다..ㅎㅎ) 협업하기 협업은 역시 어렵다. 항상 내 기준으로 생각하면 안 되고 상대의 입장에서도 생각해봐야 한다. 그래서 예쁘게 말하는 것이 진짜 중요하다. 이것이 남도 생각하고, 나도 생각하는 방법이라고 생각이 든다. 말은 쉽고 행동은 어렵다. 상대방이 원하는 것을 잘 파악하고, 내가 원하는 것을 명확하게 전달할 줄 아는 것이 가장 중요한 것 같다. 그러려면 잘 들어야 한다!! 잘 듣는 게(의도..
이미지 컨테이너를 생성할 때 필요한 요소 이미지는 여러 계층으로 된 바이너리 파일로 존재 읽기전용 [저장소이름]/[이미지이름]:[태그] 컨테이너 이미지로 컨테이너를 생성 독립된 파일시스템과 격리된 시스템자원 및 네트워크를 사용할 수 있는 독립된 공간 도커 이미지의 종류에 따라 알맞은 설정과 파일을 가지게 됨 컨테이너에서 무엇을 하든 원래 이미지에는 영향을 주지 않음 가상 IP 주소를 할당받음. 172.17.0.x 의 IP를 순차적으로 할당 컨테이너를 삭제하면 컨테이너 계층에 있던 정보도 삭제됨 도커 명령어 Docker-compose docker-compose up -d # -d, --detach : background 로 실행 # up : start or restart all the services de..
사용자 인증을 다양한 방식으로 할 수 있다. 프로젝트를 진행하면서 ArgumentResolver와 Interceptor를 사용하여 구현하였다. 둘 간의 차이점이 어떤 것이 있는지 살펴보자! 둘의 Configuration 설정은 다음과 같다. @Configuration public class AuthenticationPrincipalConfig implements WebMvcConfigurer { private final AuthService authService; private final LoginInterceptor loginInterceptor; private final AdminLoginInterceptor adminLoginInterceptor; public AuthenticationPrincip..
CORS? 교차 출처 리소스 공유 Cross-Origin Resource Sharing CORS 체제는 브라우저와 서버 간의 안전한 교차 출처 요청 및 데이터 전송을 지원 CORS 응답으로 서버는 Access-Control-Allow-Origin 헤더를 보냄 'HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제' 배경 웹 브라우저는 access token이나 cookie 등과 같이 유저와 관련된 데이터를 저장 정보가 노출, 외부로 전송이 되거나 조작될 수 있다면 보안적으로 심각한 문제 따라서 Same-Origin policy 정책을 도입되었음(같은 출처의 서버와 정보 공유) 프론트와 서버가 분리되는 방향..
Flyway? DB 변경사항 형상관리 오픈소스 community 무료버전과 유료버전이 있다. 7 Commands Migrate, Clean, Info, Validate, Undo, Baseline, Repair 라는 7개의 명령어를 지원한다. Migrate: DB의 스키마를 최신 버전으로 변경한다. Clean: 스키마의 내용을 삭제한다. (운영 DB에서 사용하면 안된다) Info: migration 과 관련된 상태외 상세정보를 보여준다. Validate: 현재 적용된 부분과 일치하는지 알려준다. Undo: 가장 최신에 적용된 migration을 되돌리기 한다. Baseline: baselineVersion을 제외하고 migration 한다. Repair: DB flyway 내역을 수정한다. Migrate..
ssh 통신을 매번 ip 주소 넣으며 하기 번거로운데 간단하게 설정하는 방법이 있다. ssh config 설정파일에 들어간다 # 해당 파일에 들어가거나 만든다. vi ~/.ssh/config 설정파일에 아래와 같은 형식으로 저장한다. Host 이름설정 HostName IP주소 User ubuntu IdentityFile ~/.ssh/펨키.pem # 같은 형식으로 여러개 저장가능 펨키를 ~/.ssh 경로에 넣는다 터미널에서 `ssh 설정한이름` 으로 접속가능! # 기존 # pem 키가 있는 경로로 이동하여 아래와 같이 매번 입력해야했다. ssh -i my_key.pem ubuntu@IP주소 # 설정 후 # 내가 설정한 이름이 abc_my_name 이라면, abc 입력후 탭을 누르면 찾아준다. ssh abc..
- Total
- Today
- Yesterday
- 알고리즘
- 개발공부일지
- 모의면접준비
- 운영체제
- 인증
- CS
- 내부코드
- 우테코수업
- TIL
- 객체지향
- java
- JPA
- 월간회고
- 회고
- Transaction
- OS
- 우아한테크코스
- 글쓰기미션
- 학습로그
- TCP/IP
- DB
- JS
- 마스터즈코스
- 네트워크
- 코드스쿼드
- React
- Spring
- python
- javascript
- 카카오
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |