반응형
[AWS] Lambda@Edge 활용하여 image resize - (2)
공부/AWS2024. 9. 8. 13:43[AWS] Lambda@Edge 활용하여 image resize - (2)

앞서 Lambda 함수 사용하여 S3 저장소 업로드 이미지 리사이징 방법을 살펴보았습니다. 참고. https://dev-ljw1126.tistory.com/460 [AWS] Lambda 활용하여 image resize (+CloudFront) - (1)1편으로 AWS 인프라 사용하여 실무에서도 활용되고 있는 이미지 리사이징을 구현해봅니다.필요한 전체 코드나 과정은 AWS 공식 가이드를 참고해서 했습니다.  가이드에서는 Source bucket과 Destinatiodev-ljw1126.tistory.com Lambda를 활용하여 S3 이미지 리사이징 하는 방식은 아래와 같은 장단점이 있었습니다. 장점.① 자동화된 리사이징 이미지를 S3 업로할 때 자동으로 람다 트리거 되므로, 이를 통해 개발 및 운영 부담..

[AWS] Lambda 활용하여 image resize (+CloudFront) - (1)
공부/AWS2024. 9. 8. 11:12[AWS] Lambda 활용하여 image resize (+CloudFront) - (1)

1편으로 AWS 인프라 사용하여 실무에서도 활용되고 있는 이미지 리사이징을 구현해봅니다.필요한 전체 코드나 과정은 AWS 공식 가이드를 참고해서 했습니다.  가이드에서는 Source bucket과 Destination bucket 분리하여 사용했는데, 포스팅에서는 간단하게 Bucket 하나에 디렉토리(origin, resize) 구분해서 작업합니다. 흐름은 아래와 같습니다.① S3 bucket의 origin/ 디렉토리에 원본 이미지 업로드② 이벤트 감지해서 Lambda 실행, 이미지 리사이징 후 S3의 resize/ 디렉토리 저장③ 사용자는 CloudFront 도메인 주소로 S3 이미지 호출  S3 버킷 생성region은 서울로 하고 외부 URL로 S3 직접 접근을 못하도록 퍼블릭 엑세스 차단 설정합니다..

[NHN Cloud] 컨테이너 기반 Prometheus, Grafana 모니터링 환경 구성(by 오픈 소스 툴)
공부/DevOps2024. 9. 2. 20:11[NHN Cloud] 컨테이너 기반 Prometheus, Grafana 모니터링 환경 구성(by 오픈 소스 툴)

“전투에서 실패한 지휘관은 용서할 수 있지만 경계에서 실패하는 지휘관은 용서할 수 없다”는 말이 있습니다. 이 말을 서비스를 운영하는 개발자에게 비춰 보면 장애는 언제든지 발생할 수 있더라도 그만큼 모니터링을 잘 해야 한다는 뜻입니다. - 김영한 CTO  앞에 포스팅에서 기본적인 인프라 구성해보았다. 이번 포스팅에서는 웹서버에 Docker 컨테이너 기반 Prometheus와 Grafana를 설치하고 대시보드를 생성하는 과정을 다뤄본다.  참고. https://dev-ljw1126.tistory.com/458 [NHNCloud] 기본 웹 서버, DB 인프라 구축 (vpc, subnet, floating ip, ..)기본 인프라 구성도nhn cloud 사용하여 아래와 같은 기본 인프라 구성해본다  참고로- ..

[NHN Cloud] 기본적인 웹 서버, DB 인프라 구축 (vpc, subnet, floating ip, ..)
공부/DevOps2024. 8. 30. 11:02[NHN Cloud] 기본적인 웹 서버, DB 인프라 구축 (vpc, subnet, floating ip, ..)

기본 인프라 구성도nhn cloud 사용하여 아래와 같은 기본 인프라 구성해본다  참고로- ssh(22)로 web 서버 접근시 floating ip 주소로 서버 접속한다 (10.*.*.* : 사설 ip로는 외부에서 접근 x)- private subnet에 있는 MySQL 서버는 외부에서 접근 불가하고, public subnet 통해서 접속/접근 가능하다  1. VPC(Virtual Private Cloud) , Internet Gateway- 클라우드 컴퓨팅 환경에서 사용자가 정의한 가상 사설 네트워크- RFC 1918 기재되어 있는 범위로 사설 네트워크를 생성할 수 있다- 10.*.*.* / 172.*.*.* / 192.*.*.*  주소가 해당 [VPC 생성] 버튼 눌러서 10.0.0.0/16 으로 "..

[Spring Boot] Simple Cache, EhCache(v3.10.8) 간단 테스트 해보기
공부/Spring2024. 7. 22. 15:31[Spring Boot] Simple Cache, EhCache(v3.10.8) 간단 테스트 해보기

캐시란?- 데이터나 값을 미리 복사해놓는 임시 저장소- 시스템 성능을 향상시키기 위한 메커니즘 - 캐시에 데이터를 저장하고 엑세스하는 프로세스이다 캐시를 사용해야 하는 이유① 데이터 접근이 빠르고 비용이 저렴② 애플리케이션 성능이 향상됨③ 응답이 빠름④ 메모리에 데이터 접근하는게 DB에서 가져오는 것보다 항상 빠름⑤ 비용이 많은 백엔드 요청이 줄어듦 캐시에 데이터를 미리 복사해 놓음으로써 처리/접근 시간(비용) 없이 빠른 속도로 데이터 접근할 수 있다 언제 사용- 자주 변경되지 않는 데이터- 원본 데이터에 접근/처리 시간이 오래 걸리는 경우 캐싱 종류 ① 인메모리 캐싱 (ex. Redis)② 데이터베이스 캐싱 (ex. hibernate 1차 캐시)③ 웹 서버 캐싱 - HTTP Cache : 브라우저/프록..

공부/Spring2024. 6. 26. 21:36Spring boot 3.x + Security 6.x + @WebMvcTest 회고

상세 버전- spring boot 3.2.0- security 6.2.0 상황, 원인 분석security 추가하면서 잘 돌아가던 @WebMvcTest가 시원하게 403 Forbidden 에러 출력하였다 @WebMvcTest(value = MemberController.class)class MemberControllerWebMvcTest { @Autowired private MockMvc mockMvc; @Autowired private ObjectMapper objectMapper; @MockBean private MemberUseCase memberUseCase; @Test void 회원가입_성공하면_아이디값을_반환한다() throws Exception { ..

[네트워크] 얕게 Wireshark 로 TCP, TLSv1.3 연결 확인해보기 (with ChatGPT)
공부/CS2024. 5. 25. 11:37[네트워크] 얕게 Wireshark 로 TCP, TLSv1.3 연결 확인해보기 (with ChatGPT)

HTML 문서가 있을 때, HTTP는 HTML을 나르는 프로토콜이고, 이때 TCP라는 인프라를 활용한다.- 널널한 개발자 강의 중  인프런 강의 중 "외워서 끝내는 네트워크 핵심이론 - 기초"를 듣게 되었다. 평소 유튜브 채널 "널널한 개발자"를 잘 보고 있었는데, 왠지 들어야 할 거같은 느낌에 들었는데 TCP와 TLS에 대해 좀 더 알아보게 되었고 정리해보았다.  강의 링크 외워서 끝내는 네트워크 핵심이론 - 기초 - 인프런 | 강의TCP/IP에서 HTTP까지! 네트워크에 대한 기본 이론이 부족한 분들이 '외워서'라도 전공 이론을 이해하고자 희망하는 분들을 위해 준비한 강의입니다. 할 수 있습니다!, [사진] 네트워크, 외워서 쉽고www.inflearn.com 이 강의 덕분에 이론으로만 알고 있던 지식..

공부/CS2024. 5. 25. 11:33[네트워크] IPv4, 서브넷팅 문제 예시

복습 위해 5년전 방송기술직 목표로 공부했던 내용 포스팅IP(Intenet Protocol) - 인터넷상에서 하나의 host(컴퓨터)를 구분하기 위한 고유 주소(=식별자)- L3 계층에서 사용 - 라우터간 통신시 IP는 식별자 이다.- IPv4에서 A ~ E 클래스로 나눠지며, network id, host id 구분되어 관리됨- IPv4 의 경우 32bit 주소 체계 가짐 (2^32 = 약 43억개)예) 192.168.174.100 (10진수)  -- 8bit * 4 자리 - IPv6의 경우 128bit 주소 체계 가짐 (2^128 = '지구 상에 존재하는 모래알 개수보다 많다')예) 2004:2ba8:13aa:0011:0000:0000:0000:abaa   -- 16bit * 8 자리 IPv4 주소 ..

공부/DB2024. 4. 30. 17:12[MySQL] transaction isolation 이상현상 3가지(Dirty Read, Non-Repeatable Read, Phantom Read)

여러 기술블로그(망나니 개발자), 유튜브 강의 영상, Chat GPT, 공식 메뉴얼을 찾아보았지만 MySQL 까보지 않는 이상 정확하게 이걸 이해하는게  현실적으로 많은 어려움이 있음을 깨달았다. 특히나 스냅샷과 Undo Log에 대해 정확하게 이해하는게 너무 어려운게 현재 레벨로 보이고, 우선은 이렇게 정리하고 후에 깊이 있게 공부할 기회가 있으면 추가로 정리를 해야겠다Docker로 테스트 환경 구축MySQL 8.0 설치하여 트랜잭션 이상현상 테스트를 수행할 수 있도록 한다 docker 로 mysql 설치# 이미지 내려받기$ docker pull mysql:8.0# 이미지 확인$ docker images# 실행$ docker run --name mysql-8 -e MYSQL_ROOT_PASSWORD=1..

[넥스트스탭] 블랙잭 - 자바 플레이 그라운드
공부/Java2024. 4. 30. 17:11[넥스트스탭] 블랙잭 - 자바 플레이 그라운드

깃 저장소학습 전https://github.com/ljw1126/my-java-blackjack-playground/tree/exercise-blackjack/src/main/java/nextstep/blackjack 학습 후https://github.com/ljw1126/my-java-blackjack-playground/tree/practice/src/main/java/nextstep/blackjack어려웠던 부분 - 클래스 책임을 제대로 처리하지 못하여, 로직이 분산되어 코드를 읽기 힘들었음- 테스트시 딜러와 플레이어가 가진 패를 초기화하는 방법을 생각지 못해 헤매었슴- 블랙잭 게임에 대한 이해 부족 (=요구사항 이해 부족)특히나 블랙잭 게임의 승패 판정할 때 딜러와 플레이어간의 1:1 비교를 이해..

[넥스트스탭] 좌표계산기 - 자바 플레이 그라운드
공부/Java2024. 4. 30. 17:11[넥스트스탭] 좌표계산기 - 자바 플레이 그라운드

깃 저장소https://github.com/ljw1126/my-java-coordinate-playground/tree/practice/src/main/java복습 - 좌표 계산기 (선, 사각형, 삼각형)[요구사항]① 사용자가 점에 대한 좌표 정보를 입력한다② 좌표 정보는 괄호로 둘러쌓여 있으며, 쉼표(,) 로 x/y값을 구분한다 [예시]선의 경우 (10,10)-(14,15)사각형의 경우 (10,10)-(22,10)-(22,18)-(10,18)삼각형의 경우 (10,10)-(14,15)-(20,8)③ x, y 좌표 값의 범위는 1 ~ 24 이다④ 입력 범위를 초과할 경우 에러 문구를 출력하고 다시 입력을 받는다⑤ 정상적인 값을 입력한 경우, 콘솔에 2차원 그래프와 결과값을 출력한다 [결과]선의 경우 두 점..

[넥스트스탭] 자동차 경주 게임 - 자바 플레이 그라운드
공부/Java2024. 4. 30. 17:11[넥스트스탭] 자동차 경주 게임 - 자바 플레이 그라운드

깃 저장소학습 전https://github.com/ljw1126/my-java-racingcar-playground/tree/myself/src/main/java 학습 후https://github.com/ljw1126/my-java-racingcar-playground/tree/practice/src/main/java복습 - 자동차 경주 게임[기능 요구사항]① 각 자동차에 이름을 부여할 수 있다. (이때 자동차 이름은 5자를 초과할 수 없다)② 자동차 이름은 쉼표(,)를 기준으로 구분한다③ 전진하는 조건은 0에서 9사이에서 random값을 구한 후 값이 4이상인 경우이다④ 게임 종료 후 우승자를 출력한다. (이때 우승자는 한명 이상일 수 있다) [실행 결과]경주할 자동차 이름을 입력하세요(이름은 쉼표(,..

[넥스트스탭] 숫자 야구 게임 - 자바 플레이 그라운드
공부/Java2024. 4. 30. 17:11[넥스트스탭] 숫자 야구 게임 - 자바 플레이 그라운드

강의 링크 https://edu.nextstep.camp/c/9WPRB0ys/ 플레이그라운드 edu.nextstep.camp깃 허브 저장소학습 전https://github.com/ljw1126/my-java-baseball-playground/blob/myself/src/main/java 학습 후https://github.com/ljw1126/my-java-baseball-playground/tree/practice/src/main/java학습 전 직접 작성한 코드 (펼처보기)반성)① 객체 지향적 언어를 사용하면서도, 거리가 먼 절차적 코드를 작성② 절차적 코드로 인해 한 눈에 로직을 파악하기 힘듦 (가독성 저하)③ 테스트 코드 미작성④ 클래스 미분리 - view, model, controller⑤ 의미..

[패스트캠퍼스] 완강 후기 - The Red:25개 백엔드 개발 필수 현업 예제를 통해 마스터하는 Java Stream
공부/기타2023. 12. 12. 09:46[패스트캠퍼스] 완강 후기 - The Red:25개 백엔드 개발 필수 현업 예제를 통해 마스터하는 Java Stream

수강 강의 https://fastcampus.co.kr/dev_red_lsh The Red: 25개 백엔드 개발 필수 현업 예제를 통해 마스터하는 JAVA STREAM | 패스트캠퍼스 글로벌 SNS 기업이자 자바 오픈 소스 분야의 강자인 LinkedIn의 시니어 소프트웨어 엔지니어인 이승환 강사의 강의입니다. 이승환 강사는 백엔드 개발자로 LinkedIn에서 회원관리 및 거래 관리 부분 fastcampus.co.kr 완강 후기 총 두 번의 완강을 하였고, 스스로 생각하고 학습하는 방법을 깨달음으로써 한 단계 더 성장할 수 있었다. 처음 강의를 들었을 때 새로운 지식을 학습했으니, 업무를 하는 데 많은 변화가 있을 거라는 기대를 했었다. 하지만 나의 착각이었다. 기술을 학습했을 뿐이지 기술에 대한 이해도 ..

공부/기타2023. 11. 27. 19:33sdkman으로 스프링부트 프로젝트 설치, h2 database 설치 및 접속

sdkman & 스프링 부트 프로젝트 설치 - 강의에서는 Java11에 Spring Boot 2.6.4 버전을 사용하나, 포스팅 기준 Spring Initializr에서는 3.x.x버전과 Java 17부터 지원 - 토비님 강의 통해 알게 된 sdkman 활용해서 프로젝트 생성을 해 봄 1. sdkman 설치 https://sdkman.io/install Installation - SDKMAN! the Software Development Kit Manager SDKMAN! is a tool for managing parallel versions of multiple Software Development Kits on most Unix based systems. sdkman.io 2. JDK 17 설치 및..

[Java] Reflection API 테스트 학습(with Baeldung)
공부/Java2023. 11. 20. 13:19[Java] Reflection API 테스트 학습(with Baeldung)

목차 *테스트 코드 작성시 JUnit5, Assertj 사용 Baeldung 테스트 학습 class name 활용하여 인스턴스 생성하기 Job 인터페이스 public interface Job { String getJobType(); } MaintenanceJob 클래스 public class MaintenanceJob implements Job{ @Override public String getJobType() { return "Maintenance Job"; } } *PaintJob, RepairJob 클래스도 반환값만 다르고 동일하게 구현 PlatinumJobCard 클래스 setJobType()에 String과 Class 타입으로 받아 인스턴스 생성 후 필드 주입하고, startJob()을 호출하는..

[JUnit5] 테스트 메서드 그룹화/실행 순서 (@Nested, @TestMethodOrder)
공부/Junit2023. 8. 26. 15:36[JUnit5] 테스트 메서드 그룹화/실행 순서 (@Nested, @TestMethodOrder)

목차 @Nested 사용하여 테스트 그룹화 - simple 하게 내부 클래스 선언 - @Nested Annotation 추가하면 됨 - 그룹화할 테스트 메서드를 이동 사용 예시 @ActiveProfiles("test") @AutoConfigureMockMvc @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.MOCK) class RestControllerTest { // .. 테스트 작성 @Nested @DisplayName("계좌 입금 테스트") @TestMethodOrder(MethodOrderer.MethodName.class) class AccountDeposit { // .. 테스트 작성 } } Controller, Service 테..

[Spring] AOP 용어 정리
공부/Spring2023. 8. 22. 19:25[Spring] AOP 용어 정리

목차 AOP (Aspect Oriented Programming) 관점 지향 프로그래밍은 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화 하겠다는 의미이다. 여기서 모듈화란 어떤 공통된 로직이나 기능을 하나의 단위로 묶는 것을 만한다. 예로들어 핵심적인 관점(core concerns)은 결국 우리가 적용하고자 하는 핵심 비즈니스 로직이된다. 또한 부가적인 관점은 핵심 로직을 실행하기 위해서 행해지는 로깅, 실행시간 측정, 시큐리티, 트랜잭션 등이 될 수 있다. A Concern is a term that refers to a part of the system divided on the basis of the functionality 관심사는 기능에 따..

반응형
image