본문 바로가기

분류 전체보기58

프로그래머스 레벨1 - 공원[자바] 문제  프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이 mats 가 정사각형이기 때문에 2차원 배열을 탐색하면서 -1인 값을 찾고 그곳을 시작점으로 정사각형의 넓이만큼 -1이 존재하는지를 조건문으로 검색합니다. class Solution { public int solution(int[] mats, String[][] park) { for(int m : mats) { for(int i=0; i mats 배열의 원소를 하나씩 꺼내서 하나씩 비교합니다. 30점 나왔습니다.뭐가 문제인지 문제부터 다시 읽었는데 mats의 배열의 .. 2024. 10. 5.
CopyOnWriteArrayList vs SynchronizedList 개요 채팅 프로그램을 만들 때 유저 세션정보를 저장하는 리스트에 대해 동시성 문제를 고민했습니다. 동시에 두 유저가 접속했을때 동기화가 되지 않으면 한명의 유저가 리스트에 정상적으로 등록되지 않을 가능성이 있기 때문입니다.이를 스레드 안전성이라 합니다. ArrayList에 동시에 두 스레드가 접근하게 되면 스레드 안전하지 않은 상태가 됩니다.동기화는 이를 방지하기 위해 한 자원에 하나의 스레드만 접근할 수 있게 해줍니다. 그래서 동기화를 지원하는 리스트에 대해 알아봤습니다. CopyOnWriteArrayList 값을 변경할때 내부의 값을 복사해서 복사본을 통해 변경합니다.public boolean add(E e) { synchronized (lock) { Object[] .. 2024. 9. 29.
프로그래머스 레벨 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.