AWS Snow Family AWS에서 물리적인 기기를 받아서 데이터를 넣고 AWS에 보내면 데이터를 넣을 수 있다. 인터넷 연결이 되면 바로 데이터를 보낼 수도 있음 보통 데이터 마이그레이션 할 때 사용 한다. Snowcone 아주 작은 휴대 기기 에지 컴퓨팅, 스토리지, 데이터 전송에 사용 인터넷 연결이 가능하면 데이터 센터에 연결 후 AWS DataSync로 전송 가능 권장 마이그레이션 사이즈: 최대 24TB Snowball Edge 거대한 박스 형태 테라바이트, 페타바이트 용량 데이터를 옮길 때 사용 블록, S3 호환 객체 스토리지 제공 권장 마이그레이션 사이즈: 최대 페타바이트 Snowmobile 실제 트럭 데이터를 옮기는 실제 트럭 엑사바이트급 데이터를 옮길 때 사용 권장 마이그레이션 사이즈:..
전체 글
웹 백엔드취준생 입니다.스파르타 백오피스(Admin) 서버 만들기 유스케이스 다이어그램 ERD API 명세서 https://hhero.gitbook.io/99-3/ 관리자 가입 - 항해99 레벨3 선택한 강사가 촬영한 강의 목록 조회 hhero.gitbook.io 목표 Spring Secutiry + JWT 구현 백오피스 기능 구현 리팩토링 Spring Secutiry 에서 요청 권한 체크 Spring Secutiry 작동 및 JWT는 제대로 쿠키에 저장이 되고있다. 권한이 체크가 안되는 이슈가 생겼는데, 권한을 DB에 제대로 저장하고있고 SecurityFilterChain에서 authorizeHttpRequests 설정을 했는데 403 응답코드를 받고 있다. http.authorizeHttpRequests((authorize..
CloudeFront CDN, 컨텐츠 전송 네트워크를 뜻 한다, 시험에서 CDN 나오면 CloudeFront를 떠올리면 됨 서로 다른 엣지 로케이션에 미리 캐싱하여 읽기 성능을 높히는 것 네트워크 전체에 캐싱이 돼서 전세계 사용자들이 낮은 레이턴시로 접근이 가능 미국에서 요청하면 미국에 있는 엣지에 컨텐츠 요청 호주 엣지 -> 미국 엣지를 fetch해서 가져오고 캐싱 미국에서 재요청하면 미국엣지에서 가져오는 방식 이를 가능하게 하는 건 OAC (Origin Access Control) 원본 접근 제어 - 기존의 OAI를 대체하는 기능 CloudeFront를 통해 버킷에 데이터를 보내는 것도 가능 Ingress라고 함, 또 다른 OAC(원본 제공 방식)으로 HTTP 백엔드와 같은 사용자 정의 원본을 쓸 수..
1011번: Fly me to the Alpha Centauri 1011번: Fly me to the Alpha Centauri 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행 www.acmicpc.net 문제 접근 🤔 단순하게 (y-x)-1로 하고, 0이면 -1을 안하는 방식으로 갈려고 했다. -1, 0, 1 → 0, 1, 2 → 1, 2, 3.. 이여서 안됐다. 16% 테스트 케이스에서 틀렸다고 뜬다. 놓쳤던 부분 😅 문제 이해를 제대로 안하고 코드 부터 짠거 같다. 값을 나열하면 규칙이 있는데 제곱근을 사용하면 규칙을 풀 수 있다. 코드 😁 첫 번째 ..
Spring MVC와 Front Controller Spring MVC에서 Front Controller 패턴은 DispatcherServelt이 그 역할을 하고 있습니다. 각 클라이언트 필요한 정보에 따라 컨트롤러에 요청하는 방식을 Front Controller가 받아서 전달을 하는 구조로 하면은 어떤 컨트롤러에서 HTTP 요청 한건지 확인을하여 해당 컨트롤러를 호출한다. IoC / DI 에 대해 간략하게 설명 DI(의존성 주입) 모듈 간의 결합도를 낮추고 응집도를 높힙니다. 객체를 직접 생성하는게 아니라 외부에서 생성 후 주입 IoC(제어의 역전) 의존성을 역전시켜 객체 간 결합도를 낮추고 응집도를 높힙니다. 모든 제어 권한을 다른 대상에게 위임 데이터베이스의 외래키(foreign kley)에 대해 ..
S3 암호화 서버 암호화 SSE-S3 기본 암호화 AWS가 처리하고 관리하고 소유한 키를 이용해서 암호화 키에 절대로 액세스 할 수 없음 AWS에 의해 서버측에서 암호화를 하고, 보안 유형 AES-256 헤더에 "x-amz-server-die-enctyption":"AES256" 전달 필요 1. 사용자가 HTTP(S) + 헤더 전달 2. S3에서 S3가 보유한 키와 객체를 짝 지어줌 3. S3 버킷에 저장 SSE KMS - KMS 키 암호화 AWS와 S3 서비스에 보유한 키에 의존하지 않음, 키 관리 서비스를 이용해 자신의 키를 관리함 KMS를 사용하면 사용자가 키를 통제 함 CloudTrail을 이용해서 키 사용을 검사 할 수 있음, KMS에서 키 사용할때마다 CloudTrail에 로깅됨 헤더에 "x-..
S3 수명 주기 규칙 다른 스토리지 클래스 간에 객체를 옮기는 것 Standard -> Standard IA -> Intelligent Tiering -> One-Zone IA -> Flexible Retrieval -> Deep Archive 객체가 자주 액세스 하지 않는다 Standard IA로 옮길 수 있음 객체를 아카이브화 할려면 Glacier 티어, Deep Archive 티어로 이전 가능 예시1 60일 후에 Standard 클래스로 이전, 6개월 후에 Glacier로 이전해서 아카이브화 가능 Expiration actions 설정하여서 일정 시간 뒤에 만료되어 객체를 삭제 가능 예시2 액세스 로그 파일을 365일 후 삭제 버저닝을 활성화 했다면 Expiration actions를 사용해서 모든..
기술매니저님 코드리뷰 변수명 (entity, dto) 제대로 작성 너무 신경 안썼음 / seq는 id로 쓰자 Optional은 리소스가 커서 null에 대해 중요할때 조치 하는게 좋다. 근데 jpa에서는 반환 할 때 Optional이 이미 붙어있긴하다. 매개변수에 final은 안넣어도 된다. Objects.isNull 구지? 안써도 된다. 속도면이나 가독성이나 안써도된다. 보통 board 생성자에 dto를 넣는다. 빌더는 해도되긴한데 케이스 바이 케이스 JPA에서 조회 했는데 없으면 orElseThrow 쓰면 될듯? 김다보미님 코드리뷰
# 웹 연결 spring.h2.console.enabled=true spring.h2.console.path=/h2-console # h2 데이터베이스 정보 spring.datasource.driverClassName=org.h2.Driver spring.datasource.url=jdbc:h2:~/spring-h2-db spring.datasource.username=sa spring.datasource.password= spring.sql.init.mode=always spring.datasource.url=jdbc:h2:mem:testdb mem은 메모리 내 데이터베이스를 사용 (메모리 모드는 애플리케이션이 종료되면 데이터가 소멸되므로 주로 테스트 목적) spring.datasource.url=jd..
S3 개요 용도 재해 복구 용도 (다른 리전으로 이동) 아카이브용 애플리케이션 호스팅 동영상, 파일, 이미지 호스팅 데이터 레이크 보유 다량의 데이터 저장, 빅데이터 분석 버킷 S3 버킷의 파일은 객체 버킷은 계정 안에 생성이 됨 버킷은 전역적으로 고유한 명칭을 해야함 전역 서비스처럼 보이지만 리전에서 생성이 됨 Key 객체나 파일에 키가 존재 s3://my-bucket/my_file.txt가 있다면 해당 값이 키가 됨 폴더에 중첩하는 경우 키는 전체 경로가 됨 s3://my-bucket/my_folder/my_file.txt S3 그 자체로는 디렉토리의 개념이 없음 S3의 핵심은 키 키는 길이가 굉장히 긴 이름 슬래시를 포함하여 키는 접두사와 객체 이름으로 생성 됨 객체 값의 본문의 내용 파일 등 원하..