Day46

강태훈·2026년 3월 9일

nbcamp TIL

목록 보기
46/58

코드카타 - sql

우유와 요거트가 담긴 장바구니

WITH CART AS (
    SELECT CART_ID, NAME
    FROM CART_PRODUCTS
)
SELECT DISTINCT A.CART_ID
FROM CART_PRODUCTS A
JOIN CART B
ON A.CART_ID = B.CART_ID
WHERE A.NAME LIKE 'Milk'
AND B.NAME LIKE'Yogurt'
ORDER BY A.CART_ID ASC
;

조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기

SET @MAXS = (
    SELECT MAX(VIEWS)
    FROM USED_GOODS_BOARD
);

SELECT CONCAT('/home/grep/src/', A.BOARD_ID, '/', A.FILE_ID, A.FILE_NAME, A.FILE_EXT) AS FILE_PATH
FROM USED_GOODS_FILE A
JOIN USED_GOODS_BOARD B
ON A.BOARD_ID = B.BOARD_ID
WHERE B.VIEWS = @MAXS
ORDER BY A.FILE_ID DESC
;
  • SET문을 사용하여 최댓값 지역변수를 추가
WITH BOARD AS (
    SELECT BOARD_ID, VIEWS
    FROM USED_GOODS_BOARD
    ORDER BY VIEWS DESC
    LIMIT 1
)

SELECT CONCAT('/home/grep/src/', A.BOARD_ID, '/', A.FILE_ID, A.FILE_NAME, A.FILE_EXT) AS FILE_PATH
FROM USED_GOODS_FILE A
JOIN BOARD B
ON A.BOARD_ID = B.BOARD_ID
ORDER BY A.FILE_ID DESC
;
  • WITH절을 추가하여 최댓값 필터링

클라우드 기반 벡엔드 설계

IAM (Identity and Access Management)

  • IAM은 AWS에서 누가 어떤 AWS 리소스에 무엇을 할 수 있는지를 정하고 통제하는 접근 제어 시스템입니다.
    • 누가(Who): 이 요청은 인증되었는가?
    • 무엇을(What): 어떤 작업을 하려고 하는가?
    • 할 수 있는가(Can): 그 작업을 할 권한이 있는가?
  • 팀원마다 별도 계정 부여
  • 역할별로 권한 분리
  • 서버에 필요한 권한만 부여

IAM 핵심요소

  1. User

    • 사람이 AWS에 접근할때 사용하는 계정
    • 핵심특징: 영구적인 자격증명(Crediential)
  2. Role

    • 서버/서비스에게 권한을 부여할 때 사용
    • 핵심 특징: 임시로 빌려 쓰는 권한 세트
  3. Policy

    • 어떤 작업을 허용/거부할지 정의
    • Policy 자체를 단독으로 쓰는 것이 아니라 Policy를 User나 Role에 연결하는 형태
  • User와 Role의 핵심 차이

    UserRole
    사람용서버/서비스용
    영구 자격증명 보유(비밀번호, Access Key)자격증명 없음(필요할 때 임시 발급)
    직접 로그인 가능직접 로그인 불가(권한을 빌려서 사용)
    만료 없음자동 만료
  • 자격증명(Credential)이란

    • 본인임을 증명하는 정보 (비밀번호, 키 등)
    • User가 가지는 자격증명 2가지
      • 비밀번호: AWS 콘솔(웹사이트) 로그인용
      • Access Key: API/CLI(명령줄) 접근용
        • Access Key ID: 아이디 역할
        • Secret Access Key: 비밀번호 역할
    • 특징
      • 한 번 생성하면 삭제하기 전까지 유효 (만료 없음)
      • 1인 1계정 원칙 권장

0개의 댓글