전체 글
-
스프링 부트 구성 - @Import, @Conditional 활용Web/환경설정 관련 2024. 5. 13. 23:11
자동 구성 이란? 스프링 애플리케이션 개발에 필요한 컴포넌트를 자동으로 설정 해주는 기능 ex 빌드 설정에 spring-boot-starter-web 의존성 추가하면, 필요한 라이브러리 다 같이 가져오는 것 공통 Configuraion class 작성하고 이를 받아와서 환경을 구성하는 방법을 알아보자 1. 공통 Confuguration 사용 임의로 하나 만들었다. 이를 jar파일로 만든 후 다른 프로젝트에서 가져와보자 1.2 Gradle 수정 repositories { //.. flatDir{ //대상 폴더 지정 dirs 'C:\\Users\\won\\Desktop\\document\\spring\\workspace\\manyConfig\\cslib' }}dependencies { //jar 파일..
-
문제 풀이에 자주 사용하는 순열,조합자료구조와 알고리즘/문제풀기 2024. 5. 11. 01:06
순열과 조합을 사용하는 문제가 굉장히 자주 등장한다. 순열과 조합을 구하는 탬플릿 사이 사이에 원하는 연산만 추가하면 된다. 이를 정리해두고 자주 보고, 연습해서 필요할 때 빠르게 구현하려고 적어둔다. 1.순열 1.1 순열 - 원소 중복 x private static void RecursivePermutation(int depth){ //BASE CASE if(depth == r){ //.. 여기서 순열이 완성되면 할 일 // 대표적으로 +1해서 경우의 수를 count한다던지 // 아니면, 해당 순열에 해당하는 값을 쭉 나열한다던지.. }else{ //RECURSIVE CASE ..
-
BFS - 백준1194 달이 차오른다,가자 - 장애물 변동에서 탐색 (+테스트케이스 추가)자료구조와 알고리즘/문제풀기 2024. 5. 11. 00:12
달이 차오른다, 가자. 시간 제한메모리 제한제출정답맞힌 사람정답 비율2 초128 MB181897592515338.747%문제지금 민식이가 계획한 여행은 달이 맨 처음 뜨기 시작할 때 부터, 준비했던 여행길이다. 하지만, 매번 달이 차오를 때마다 민식이는 어쩔 수 없는 현실의 벽 앞에서 다짐을 포기하고 말았다.민식이는 매번 자신의 다짐을 말하려고 노력했지만, 말을 하면 아무도 못 알아들을 것만 같아서, 지레 겁먹고 벙어리가 되어버렸다. 결국 민식이는 모두 잠든 새벽 네시 반쯤 홀로 일어나, 창 밖에 떠있는 달을 보았다.하루밖에 남지 않았다. 달은 내일이면 다 차오른다. 이번이 마지막기회다. 이걸 놓치면 영영 못간다.영식이는 민식이가 오늘도 여태것처럼 그냥 잠 들어버려서 못 갈지도 모른다고 생각했다. 하지..
-
스프링 부트 애플리케이션 시작 시 코드 실행 (CommandLineRunner)Web/환경설정 관련 2024. 5. 10. 19:39
스프링 부트 애플리케이션을 시작할 때 특정 코드를 실행해야 할 때가 있다. ex) 애플리케이션 초기화 이전에 데이터 베이스 초기화 스크립트를 실행, 혹은 외부 REST 서비스를 호출해서 데이터를 가져오는 등이를 위해 CommandLineRunner와 ApplicationRunner가 있다. 둘 다 run() 메서드만 있음으로, 적절히 구현 후 빈으로 등록해서 사용하자 (ApplicationRunner와 매우 유사하므로, CommandLineRunner만 다룸)CommandLineRunner는 args파라미터에 접근할 수 있기 때문에, 초기화 작업을 편리하게 할 수 있는 장점이 있다. 스프링 부트 애플리케이션 초기화 직전에 run(String... args)이 호출 된다. - CommandLineRunn..
-
Spring boot - 설정 파일 관리 (@Profile, @ConfigurationProperties,@Value,@PropertySource)Web/환경설정 관련 2024. 5. 10. 19:22
개발 프로젝트를 진행하는 방식에 따라 동일한 어플리케이션을 개발, 테스트, 스테이징, 상용 등 여러 환경에서 배포해야하는 경우가 있다.이때 배포 환경에 따라 소스코드는 거의 변경되지 않고, 설정 정보만 다르게 해야 배포 작업이 편할 것이다.따라서, 설정 정보를 외부화해서 관리 하는 방법 들에 대해서 알아보자 Property 관리의 여러 가지 방법 1. SpringApplication 클래스 활용 SpringApplication 클래스를 사용하여 설정 정보를 정의할 수 있다. 이 클래스에는 java.util.Properties 또는 Map를 인자로 받는다. setDefaultProperties에 위 Properties나 Map으로 설정한 내용을 넣으면 된다. 위 방식은 소스코드로 정의하는 방식이므로, 한..
-
Spring boot - 정적 리소스 설정 변경Web/환경설정 관련 2024. 5. 10. 16:34
목적: 지금까지 스프링 혹은 부트를 사용하며, 여러 설정들을 적어 둔 것을 정리 하기 위해 작성 spring MVC에서 url로 들어온 클라이언트의 요청을 정적 리소스(html,css,javascript 등등) 혹은 동적 리소스(jsp 등 뷰 템플릿)를 활용해서 처리한다. 컨트롤러 메서드에 url을 맵핑하듯, 정적 리소스에도 접근 가능한 url 맵핑이 필요하다. 이에 대한 설정을 알아보자 1. classpath classpath란 빌드시 컴파일 된 class 파일들과 resources의 최상위 경로이다.설정 파일 (.yml, properties)는 해당 경로 아래 어느 곳이든 존재만 해야한다. Project Structure 탭을 통해 쉽게 확인할 수 있다. 2. 정적 리소스 기본 위치 다음 4가..
-
AWS - S3,Cloudfront를 활용한 웹 페이지 배포Infra/AWS 2024. 5. 9. 16:33
CloudFront컨텐츠(파일, 동영상)을 빠르게 전송해주는 서비스이다.컨텐츠가 S3에 저장되어 있을 때 S3저장소가 한국에 있다고 가정하자이때 한국인이 한국에 S3를 활용하는 게, 외국인이 한국의 S3를 사용하는 것 보다 빠를 것이다.이는 물리적 거리가 멀기 때문이다. 이를 해결하기 위해 전세계 곳곳에 컨텐츠의 복사본을 저장해 둘 수 있는 임시 저장소를 구축하고, 가까운 저장소에서 복사본을 꺼내서 빠르게 볼 수 있도록 하는데이를 CDN이라한다. (Content Delivery Network) CloudFront는 이런 CDN서비스의 일종이다.기본적으로 S3만 사용해도 웹페이지를 배포할 수 있지만, 성능향상 및 HTTPS 적용을 위해 S3를 활용한 웹 페이지 배포시 CloudFront는 필수이다. 웹 ..
-
AWS - S3를 활용한 파일 및 이미지 업로드Infra/AWS 2024. 5. 9. 15:55
s3란?파일 저장 서비스이다. 사진이나 동영상 같은 파일을 구글 드라이브나 icloud에 업로드 하는 것과 비슷하다 백엔드 서버를 구현하다보면, 이미지 업로드를 구현할 때가 많다. 이 이미지를 EC2 내부에 저장할 수도 있지만, EC2에 쌓이는 파일이 너무 많아질 우려가 있다.따라서 파잃은 S3서비스를 이용해서 따로 관리하는 것이다.현업에서도 파일 업로드 기능을 구현할 때면 대부분 S3를 활용한다고 한다.1. S3 버킷 생성하기버킷이란? S3 서비스 내에 여러 Repositroy를 의미한다. 객체란? S3에 업로그한 파일을 파일이라 부르지 않고 객체라고 부른다. 버킷에 이미지나 파일을 올리기 위해 모든 퍼블릭 액세스를 일단 허용해두자2. 버킷 정책 추가하기 정책이란 권한을 정의하는 JSON..