내일배움캠프 D+39: 0526 🐢

enyo9rt·2022년 5월 26일

TIL-S

목록 보기
28/79

🌌 Serverless Front-end

서버리스 프론트엔드

DNS서버를 등록하려고 하면 복잡하게 인증을 거쳐야한다.

principal 들어오는 url

사실은 어제처럼 DNS 설정을 할 필요가 없었다~^^
1. Route53에서 호스팅 영역을 생성
2. 네임서버 등록
3. ACM 생성, 레코드 생성
4. 버킷 정책 생성
5. CF 설정 수정(도메인 추가, 인증서 선택)
6. CF 동작 https로 redirect되게 수정
7. R53에서 레코드 생성
++CF에 바로 반영 안되면 무효화에 /* 생성해주면 바로 반영이 된다.

아래는 sql 인젝션 설정
요즘엔 JPA등 알아서 orm이 막아주니까 백엔드 쪽에서는 거의 고려하지 않는수준이라고 한다
sql

React

살짝 맛보기로 프로젝트 생성하고 실행, 빌드하는 것까지 진행되었다.
조금 더 딥하게 준비하셨다고 했는데 이쪽 분야도 궁금하기에 하지 않고 넘어가는 게 아쉽긴 했다.
삭제 기능을 구현하는 기능이 id배열에서 id를 빼는 형태로 간단히 되는 게 신기했다.
append로 줄줄 늘어나지도 않고 좋아보였다. 그런데 프로젝트 진행하면서 여기에 시간을 많이 쏟지 않았으면 좋겠다는 튜터님 말씀에, 여유가 있으면 관심 갖기로 했다.

튜터님이 IDE로 Git을 쓰는 걸 지양하라고 하셨는데 뜨끔했다;;
편하긴 하지만 소스트리나 터미널을 이용하도록 해야겠다..


🍃 웹개발의 봄, Spring: 4주차 -10강

  • 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
  1. 키워드 검색, 결과 보여주기
  2. 관심 상품 등록
  3. 관심 상품 조회
  4. 원하는 가격을 등록 ,그 가격보다 낮은 경우 표시
  • API 설계

    기능MethodURLReturn
    검색 결과 조회GET/api/search?query=검색어List
    관심 상품 등록POST/api/productsProduct
    관심 상품 조회GET/api/productsList
    관심 가격 표시PUT/api/products/{id}id

  • 3계층 설계

    1. Controller
      • ProductRestController: 관심 상품 관련 컨트롤러
      • SearchRestController: 검색 관련 컨트롤러
    2. Service
      • ProductService: 관심 가격 변경
    3. Repository
      • Product: 관심 상품 테이블
      • ProductRepository: 관심 상품 조회, 저장
      • ProductRequestDto: 관심 상품 등록하기
      • ProductMypriceRequestDto: 관심 가격 변경하기
      • ItemDto: 검색 결과 주고받기

  • JSON IN JAVA
    JSON을 자바에서 다루기 위해, JSONObject, JSONArray 클래스가 필요한데,
    라이브러리로 가져온다.

    1. 문자열 정보를 JSONObject로 인스턴스 만들어서 json으로 바꾸고
    2. 거기서 상품 정보가 들어있는 items 배열을 JSONArray로 꺼낸다
    3. for문으로 하나씩 꺼내주고
    4. 각각 원하는 형태에 맞게 key값으로 변수에 넣어준다.

🐢 스터디

매개변수를 갖는 생성자

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 을 이용하여 숫자에 콤마 찍기

0개의 댓글