DNS서버를 등록하려고 하면 복잡하게 인증을 거쳐야한다.
principal 들어오는 url
사실은 어제처럼 DNS 설정을 할 필요가 없었다~^^
1. Route53에서 호스팅 영역을 생성
2. 네임서버 등록
3. ACM 생성, 레코드 생성
4. 버킷 정책 생성
5. CF 설정 수정(도메인 추가, 인증서 선택)
6. CF 동작 https로 redirect되게 수정
7. R53에서 레코드 생성
++CF에 바로 반영 안되면 무효화에 /* 생성해주면 바로 반영이 된다.
아래는 sql 인젝션 설정
요즘엔 JPA등 알아서 orm이 막아주니까 백엔드 쪽에서는 거의 고려하지 않는수준이라고 한다

살짝 맛보기로 프로젝트 생성하고 실행, 빌드하는 것까지 진행되었다.
조금 더 딥하게 준비하셨다고 했는데 이쪽 분야도 궁금하기에 하지 않고 넘어가는 게 아쉽긴 했다.
삭제 기능을 구현하는 기능이 id배열에서 id를 빼는 형태로 간단히 되는 게 신기했다.
append로 줄줄 늘어나지도 않고 좋아보였다. 그런데 프로젝트 진행하면서 여기에 시간을 많이 쏟지 않았으면 좋겠다는 튜터님 말씀에, 여유가 있으면 관심 갖기로 했다.
튜터님이 IDE로 Git을 쓰는 걸 지양하라고 하셨는데 뜨끔했다;;
편하긴 하지만 소스트리나 터미널을 이용하도록 해야겠다..
3주차 숙제
//MemoController.java
@GetMapping("/api/memos")
public List<Memo> getMemo() {
LocalDateTime start = LocalDateTime.now().minusDays(1);
LocalDateTime end = LocalDateTime.now();
// 어제~지금
return memoRepository.findAllByModifiedAtBetweenOrderByModifiedAtDesc(start, end);
}
//MemoRepository.jvav
List<Memo> findAllByModifiedAtBetweenOrderByModifiedAtDesc(LocalDateTime start, LocalDateTime end);
JPA 메소드 만드는 게 SQL 쿼리 만드는 것보다 백배 좋다...
당연하다.. 짧으니까^^
튜터님이 지금 단계에서 핵심은 3계층 숙달과 API 핸들링이라고 하셨다.
파이썬-플라스크도 여러 번 해보면서 익숙해졌으니 자바-스프링도 여러 번 해봐야 익숙해질 게 당연하다. 즉, 지금은 헷갈려도 계속 해봐야 한다.
4주차는 새로운 사이트 셀렉트샵 만들기가 진행되었다.
네이버 쇼핑 API로 키워드에 맞는 제품 정보를 가져와 불러온다.
API 설계
| 기능 | Method | URL | Return |
|---|---|---|---|
| 검색 결과 조회 | GET | /api/search?query=검색어 | List |
| 관심 상품 등록 | POST | /api/products | Product |
| 관심 상품 조회 | GET | /api/products | List |
| 관심 가격 표시 | PUT | /api/products/{id} | id |
3계층 설계
JSON IN JAVA
JSON을 자바에서 다루기 위해, JSONObject, JSONArray 클래스가 필요한데,
라이브러리로 가져온다.
매개변수를 갖는 생성자
String model = "GalaxyS22";
String color = "white";
int price = 1000000;
DecimalFormat formatter = new DecimalFormat("###,###");
Phone phone = new Phone(model, color, price);
System.out.println("영희는 "+phone.model+" "+phone.color+"를 "+formatter.format(phone.price)+"원에 구매했다.");
Random random = new Random();
int cpu = random.nextInt(3) + 1;//자바에 내장된 랜덤 함수가 범위 3으로 만들어줌 0부터 시작
System.out.println("cpu: " + cpu);
Scanner sc = new Scanner(System.in);
System.out.println("가위(1)\t바위(2)\t보(3): ");
int user = sc.nextInt();
if (user < 1 || user > 3) throw new IllegalArgumentException("1-3 사이의 숫자를 입력해 주세요.");
//컴퓨터가 2를 냈고 사용자가 1을 내면 졌다
// 1 - 3이면 이기고 2일때 1이면 이기고 3일 때 2이면 이긴다
try {
if (cpu == 1 && user == 3 || cpu == 2 && user == 1 || cpu == 3 && user == 2) System.out.println("이겼습니다.");
else if (cpu == user) System.out.println("비겼습니다.");
else System.out.println("졌습니다.");
} catch (Exception e) {System.out.println(e.getMessage());}
스터디로 놓치고 갈 수 있는 부분을 챙겨갈 수 있어서 좋다.
+)참고
springboot bootrun 정지 시키기 ./gradlew -stop
DecimalFormat 을 이용하여 숫자에 콤마 찍기