본문 바로가기

전체 글56

프로그래머스 레벨 2 - 퍼즐 게임 챌린지[자바] 문제  프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이과정 배열의 어마어마한 길이를 보고 당연히 시간복잡도 때문에 안될줄 알면서도 순차적으로 돌며 체크해봤다. 생각이 안나서... import java.util.*;class Solution { public int solution(int[] diffs, int[] times, long limit) { //각 배열의 레벨별 증가값을 구하기 //증가값 = (전 시간 + 현재시간) * 틀린횟수 + 현재시간 int level = Arrays.stream(diffs) .. 2024. 9. 11.
프로그래머스 레벨 1 - 동영상 재생기[자바] 문제  프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 답 시간의 흐름 순으로 이동하며 풀었습니다. 1 - 초기 pos가 오프닝 구간일 경우 건너뛰기 실행2 - command 배열만큼 10초 뒤, 앞으로 이동3 - 10초 뒤 이동했는데 동영상 시작시간보다 짧아질 경우 0분 0초로 변환4 - 10초 앞으로 이동했는데 동영상 종료시간보다 길어질 경우 동영상 종료시간으로 변환5 - 구간이동 후 오프닝 구간일 경우 건너뛰기 실행 그래서 저는 이렇게 풀었습니다. import java.util.*;class Solution { public String solutio.. 2024. 9. 7.
리눅스 설치부터 프로젝트 배포까지(4) - mod_jk 연동 및 로드밸런싱 설정, 깃 연동 점검1.JAVA설치2.TOMCAT 설치3.프로젝트 배포4.APACHE 설치5.MOD_JK 연동6.WEB, WAS 분리하여 프로젝트 연동 확인7.깃 연동 4편을 포스팅하는데 1년이라는 시간이 흘렀다. 벌써 1년이라는 말이 확 와닿는다. 미리 말씀드리지만 이전편보다 조금, 어쩌면 훨씬 불친절한 설명이 될 것 같다. 직접 만져가며 포스팅을 하던 1~3편과는 다르게 경험에 의존해서 하는 포스팅이기 때문이다. 보충 설명을 쓸 수 있는 기회가 나중에 있다면 좋겠다. mod_jk 연동mod_jk는 아파치 웹 서버와 톰캣을 연결하여 정적 콘텐츠를 처리하는 아파치 웹 서버와 동적 콘텐츠를 처리하는 톰캣 애플리케이션 서버를 연동하는 모듈이다. was 서버에서 둘 다 처리할 수도 있지만 부하를 줄이기 위해서 분리를 했다. .. 2024. 8. 9.
Spring security web config 설정 시작스프링부트로 웹 프로젝트를 개발할 때 스프링 시큐리티는 필수적인 프레임워크 기능입니다. 실무에서는 이미 설정이 완료된 상태의 프로젝트 환경에서 개발을 했지만 직접 프로젝트를 생성하고 환경을 구성해보고자 하였습니다. 이 포스팅에서는 제가 설정한 파일의 코드와 왜 그렇게 설정했는가에 대한 이유를 풀이하였습니다. 전문@Configuration@EnableWebSecuritypublic class WebConfig implements WebMvcConfigurer { //Spring security 관련 설정 @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http .. 2024. 7. 17.
헥사고날 아키텍처를 사용한 스프링 부트 로그인 API 구현해보기 목적 클린 아키텍처라는 책을 읽으면서 프로젝트의 아키텍처 자체에 관심을 가지게 되었습니다. 저자가 제시한 클린 아키텍처는 이론적인 의미는 이해하였으나 구현 방향에 대한 갈피를 잡지 못했습니다. 그러다 헥사고날 아키텍처에 대해 알게 되었습니다. 클린 아키텍처에서 제시한 핵심 정책의 분리에 대한 원칙을 지키고 있으며 좀 더 실무에서 유용하게 사용하고 있다는 사실을 알고 직접 구현해보며 이해하고 싶었습니다. 그래서 흔한 기능 중 하나인 로그인에 대해 헥사고날 아키텍처로 설계해 보았습니다. 직접 설계해보며 느낀점에 대해 포스팅 해볼까 합니다. 프로젝트 구조프로젝트 구조는 그림과 함께 보면 이해가 쉬울거라 생각해서 같이 가져왔습니다.각 계층에 대해 살펴보자면, Adapter각 핵심 로직과 외부를 연결하는 계층입니.. 2024. 7. 12.
구글 클라우드(GKE), 쿠버네티스, 도커 사용하여 스프링부트 프로젝트 배포하기(맥os M3 기준) 들어가며 개념 설명보다는 제가 진행했던 부분 위주로 복기하며 포스팅을 해보려 합니다. 기본 스프링부트 프로젝트에 테스트용 restAPI 만든 뒤 도커용 이미지를 생성하고 쿠버네티스에 배포하여 클라우드 환경을 구성하는 과정입니다. 원래 제로에서 시작하면 설정을 하나하나 만져줘야 해서 더 어렵다고 하는데 저는 구글에서 제공하는 엔진을 사용하였기 때문에 어느정도 난이도는 내려가지 않았나 생각합니다. 처음 실습하시는 분들께도 3개월 무료 체험판(?)을 제공하기 때문에 무리없이 구현이 가능합니다.  GKE  https://cloud.google.com/kubernetes-engine?hl=ko cloud.google.com 해당 홈페이지에 접속하여 구글 클라우드에 회원가입 해줍니다. 회사 메일로 하면 회사 프로젝.. 2024. 7. 4.