본문 바로가기

전체 글311

S3 presigned url, Springboot 연동 S3 presigned url, Springboot 연동 이미지를 저장하고, 조회하는 역할로 클라우드 서비스(AWS S3)를 활용하면 이점이 많다. 이미지 저장소를 직접 구축하지 않아도 된다. 파일 접근 권한을 손쉽게 설정할 수 있다. 모두 접근가능하게도 할 수 있고, 특정 권한을 가진 사용자만 접근가능하게도 할 수 있다. 데이터 전송 속도를 관리할 수 있다. (전송 가속화) 저장소를 쉽게 모니터링 할 수 있다. 저장소 안정성이 높다. 믿고 맡길 수 있다. 파일 저장소를 S3 로 선택했다면, 이미지를 어떤 방식으로 저장하고 조회할 것인지 고민이 된다. 여기서는 presigned url 을 통해, 이미지를 업로드하고 조회하는 방식을 알아본다. 1) S3 버킷 준비 AWS S3 에서 버킷을 생성하고, 폴더까.. 2022. 11. 24.
AWS RDS 생성, EC2 연결하기 AWS RDS 생성, EC2 연결하기 RDS 는 Relational Database Service 의 약자이고, AWS 클라우드에서 관계형 데이터베이스를 손쉽게 설치, 운영하고 확장할 수 있는 웹 서비스입니다. 하드웨어 장비설정, 데이터베이스 설정, 백업 등 운영 작업을 AWS 에서 관리할 수 있습니다. 1 RDS 생성 여기서는 AWS free-tier 계정에 맞게 추가요금이 발생되지 않도록 RDS 를 생성합니다. AWS > RDS 검색 > 대시보드 > 데이터베이스 생성 MariaDB 를 사용했습니다. 프리티어에서 사용가능합니다. MySQL, PostgreSQL 도 프리티어에서 가능합니다. 인스턴스 식별자와, 자격 증명 설정을 입력합니다. AWS는 db.t2.micro, db.t3.micro, db.t4.. 2022. 11. 19.
AWS EC2 private key 재발급 AWS EC2 private key 재발급 잘 저장해두었다고 생각했던 EC2 private key 가 사라졌다면 어떻게 할까요? 방법은 간단합니다. 키를 재발급하고 새로 등록하면 됩니다. 아래 절차를 따라가 봅시다. 1 새로 키 생성 우선 AWS 계정으로 접속한 뒤 AWS > EC2 > 네트워크 및 보안 > 키 페어 키 페어 생성 키페어 유형 - RSA 프라이빗 키 파일 형식 - .pem (mac, linux), .ppk (window putty) 키 페어 생성을 누르면, 자동으로 private key (.pem) 파일이 다운로드 됩니다. 2 인스턴스 중지 중요한 것은 인스턴스 종료가 아닌 '중지'입니다. 만일 인스턴스가 모두 종료되고 더 이상 인스턴스가 남아있지 않은 상태에서 탄력적 IP 를 사용 중이.. 2022. 11. 17.
자바개발자가 보기에 Kotlin 에서 좋아보이는 것들 - 5 자바개발자가 보기에 Kotlin 에서 좋아보이는 것들 - 5 비동기 프로그래밍 기술 (Asynchronous Prgramming Techniques) 블로킹은 사용자들을 기다리게 만들고, 애플리케이션을 확장하는데 병목 현상을 초래한다. 애플리케이션에서 블로킹을 어떻게 막을 것인지 여러 방법이 있다. 쓰레딩 Threading 블로킹을 막기 위한 가장 잘 알려진 방법. 한 메인 프로그램에서 여러 쓰레드가 실행되며 동시 처리한다. fun postItem(item: Item) { val token = preparePost() val post = submitPost(token, item) processPost(post) } fun preparePost(): Token { // 요청을 보내 토큰을 받음 return.. 2022. 11. 12.
자바개발자가 보기에 Kotlin 에서 좋아보이는 것들 - 4 자바개발자가 보기에 Kotlin 에서 좋아보이는 것들 - 4 함수 (Functions) 기본값, 이름있는 아규먼트 (Default, Named arguements) 파라미터가 기본 값을 가지도록 할 수 있다. (default arguments) 이름있는 아규먼트 (named arguments)를 사용하여, 함수를 호출할 때 어떤 파라미터에 어떤 값을 넣는지 명시할 수 있다. 파라미터가 여러 개 있을 때 특히 유용하다. varargs 여러 아규먼트를 한나의 변수에 받아올 수 있다. variable number of arguments 라 한다. fun sum(vararg nums: Int) : Int { var result = 0 for (num in nums) { result += num } return .. 2022. 11. 7.
자바개발자가 보기에 Kotlin 에서 좋아보이는 것들 - 3 자바개발자가 보기에 Kotlin 에서 좋아보이는 것들 - 3 클래스와 객체에서 제네릭(Generics: in, out, where) 여기서는 공변, 반공변에 대한 개념이 조금 필요하다. 혹시 간단하게 알고싶다면 공변, 반공변이란 무엇일까 를 참고해보면 좋을 것 같다. 선언위치 변성 (Declaration-site variance) interface Factory { fun pop(): T fun push(t: T) // compile error } Factory 라는 클래스는 제네릭 파라미터 T 에 대해 공변(covariant) 임을 의미한다. Factory 클래스는 T 의 producer 만 가능하다고 생각할 수 있다. consumer 는 될 수 없다. 따라서 메소드 파라미터로 타입이 T 인 변수를 받.. 2022. 11. 3.
공변, 반공변이란 무엇일까 공변, 반공변이란 무엇일까 변성(Variance) 자바 제네릭은 기본적으로 불변 String 은 Object 의 서브타입이다. 하지만, List 은 List 의 서브타입이 아니다. 즉 자바의 제네릭 타입은 불변(invariant) 이다. 변성(variance)이 없다. 불변임으로 인해서 나타나는 아래 문제점을 보자. 뭔가 이상한 addAll 코드 class Collection { void addAll(Collection items) { for (E e: src) { push(e); } } } void copyAll(Collection to, Collection from) { to.addAll(from); // compile error } copyAll메소드는 컴파일에러가 발생한다. 사실 copyAll 메.. 2022. 10. 27.
자바개발자가 보기에 Kotlin 에서 좋아보이는 것들 - 2 자바개발자가 보기에 Kotlin 에서 좋아보이는 것들 - 2 이 글은 이전에 작성했던 자바개발자가 보기에 Kotlin 에서 좋아보이는 것들 - 1 에 이어서 연재됩니다. 클래스와 오브젝트(Classes and objects) 안에서 클래스(Classes) Trailing comma data class Todo( val id: Long, val title: String, val description: String, ) 맨 밑에 작성된 프로퍼티 맨 끝에도 , 를 사용할 수 있어서 일관적으로 작성할 수 있다. trailing comma 가 없다면 새로운 프로퍼티를 추가할 때, 2줄을 수정해야 해야 한다. 반면에 trailing comma 가 있다면 한 줄만 수정해도 된다. 사소하지만 이 부분은 코드리뷰시 수정.. 2022. 10. 15.
자바개발자가 보기에 Kotlin 에서 좋아보이는 것들 - 1 자바개발자가 보기에 Kotlin 에서 좋아보이는 것들 - 1 1) 기본 타입(Basic Types) 숫자(Numbers) Byte(8 bits), Short(16), Int(32), Long(64) Float(32), Double(64) 자바에서 숫자 타입은 primitive, wrapper 타입으로 나뉘어있다. 보통은 primitive 를 쓰고, 콜렉션이나 제네릭 안에 사용되는 타입으로 wrapper 타입을 많이 사용한다. 혹은 null 필요할 경우도 wrapper 를 사용한다. (혹은 그냥 모두 wrapper 로 통일한다.) 코틀린에서는 이런 고민없이 타입이 모두 wrapper 이다. 컴파일러가 가장작은 범위의 타입으로 값을 자동으로 암시해준다. val three = 3 // Int val three.. 2022. 10. 13.
Kotlin 서버 개발하기 2 Kotlin 서버 개발하기 2 Pomodoro 최근에 알게 된 공부/일 집중 방법으로 '뽀모도로' 기법이 있습니다. 쉽게 말해 25분 공부하고, 5분 쉬는 것인데요. 실제 타이머로 25분을 재면서 어떤 일에 몰두하면, 생각보다 집중이 잘 되서 효과를 볼 수 있습니다. 특히, 25분이 끝나올 때 다급해지는 마음에 더 집중이 잘 되기도 합니다. 뽀모도로 기법은 이 포모도르를 4번 시행하면 1시간이 채워지는데, 이 때는 5분보다 좀 더 긴 휴식 시간을 가지길 권장합니다. 이렇게 한 싸이클이 끝나면, 다음 목표를 향해 다음 싸이클을 반복하면 됩니다. 지금 이 블로그 글쓰기 역시 뽀모도로 기법을 통해 집중해서 진행하고 있습니다. 이번 프로젝트는 뽀모도로 기법을 통한 자기 관리 앱을 만들 것 입니다... 2022. 9. 30.
728x90