본문 바로가기

전체 글48

알고리즘 | Java 백준[Silver I] 스타트와 링크 - 14889 [Silver I] 스타트와 링크 - 14889문제 링크 성능 요약메모리: 15176 KB, 시간: 268 ms분류백트래킹, 브루트포스 알고리즘제출 일자2024년 9월 15일 17:46:41문제 설명오늘은 스타트링크에 다니는 사람들이 모여서 축구를 해보려고 한다. 축구는 평일 오후에 하고 의무 참석도 아니다. 축구를 하기 위해 모인 사람은 총 N명이고 신기하게도 N은 짝수이다. 이제 N/2명으로 이루어진 스타트 팀과 링크 팀으로 사람들을 나눠야 한다.BOJ를 운영하는 회사 답게 사람에게 번호를 1부터 N까지로 배정했고, 아래와 같은 능력치를 조사했다. 능력치 Sij는 i번 사람과 j번 사람이 같은 팀에 속했을 때, 팀에 더해지는 능력치이다. 팀의 능력치는 팀에 속한 모든 쌍의 능력치 Sij의 합이다. S.. 2024. 9. 15.
알고리즘 | Java 백준[Silver III] 다음 순열 - 10972 [Silver III] 다음 순열 - 10972문제 링크성능 요약메모리: 20068 KB, 시간: 224 ms분류조합론, 수학제출 일자2024년 9월 14일 02:22:06문제 설명1부터 N까지의 수로 이루어진 순열이 있다. 이때, 사전순으로 다음에 오는 순열을 구하는 프로그램을 작성하시오.사전 순으로 가장 앞서는 순열은 오름차순으로 이루어진 순열이고, 가장 마지막에 오는 순열은 내림차순으로 이루어진 순열이다.N = 3인 경우에 사전순으로 순열을 나열하면 다음과 같다.1, 2, 31, 3, 22, 1, 32, 3, 13, 1, 23, 2, 1입력첫째 줄에 N(1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄에 순열이 주어진다.출력첫째 줄에 입력으로 주어진 순열의 다음에 오는 순열을 출력한다. 만약, 사전.. 2024. 9. 14.
알고리즘 | Java 백준[Silver II] 키로거 - 5397 [Silver II] 키로거 - 5397문제 링크성능 요약메모리: 209904 KB, 시간: 540 ms분류자료 구조, 연결 리스트, 스택제출 일자2024년 9월 8일 00:45:54문제 설명창영이는 강산이의 비밀번호를 훔치기 위해서 강산이가 사용하는 컴퓨터에 키로거를 설치했다. 며칠을 기다린 끝에 창영이는 강산이가 비밀번호 창에 입력하는 글자를 얻어냈다.키로거는 사용자가 키보드를 누른 명령을 모두 기록한다. 따라서, 강산이가 비밀번호를 입력할 때, 화살표나 백스페이스를 입력해도 정확한 비밀번호를 알아낼 수 있다.강산이가 비밀번호 창에서 입력한 키가 주어졌을 때, 강산이의 비밀번호를 알아내는 프로그램을 작성하시오. 강산이는 키보드로 입력한 키는 알파벳 대문자, 소문자, 숫자, 백스페이스, 화살표이다.입력.. 2024. 9. 8.
Spring | Spring MVC 패턴 - HTTP 요청을 받고 응답하기까지의 전 과정(2) HTTP 요청 전체 흐름흐름을 이해하기 좋은 자료들클라이언트 요청을 Dispatcher Servlet에 전달WAS에서 HttpServletRequest, HttpServletResponse 객체로 변환하고, 이를 DispathcherServlet에게 넘겨준다.DispathcherServlet.doDispatch()가 호출된다.HandlerMapping에서 해당 Handler(controller)에 처리 요청한다.DispathcherServlet은 찾아낸 Handler를 실행할 수 있는 HandlerAdapter를 찾고, 실행한다. HandlerAdapter가 실제 Handler를 실행한다.DispathcherServlet에서 전달받은 ModelAndView 객체를 이용하여 매핑되는 View를 검색한다.V.. 2024. 9. 5.
Spring | Spring MVC 패턴 - MVC와 서블릿 (1) MVC 패턴의 등장서블릿과 JSP의 한계서블릿으로 개발할 때는 뷰(View)화면을 위한 HTML을 만드는 작업이 자바 코드에 섞여서 지저분하고 복잡했다.JSP를 사용한 덕분에 뷰를 생성하는 HTML 작업을 깔끔하게 가져가고, 중간중간 동적으로 변경이 필요한 부분에만 자바 코드를 적용했다.그러나 JSP를 사용할 때에도 프로젝트의 규모가 커지면서 불편함을 겪게 된다.JAVA 코드, 데이터를 조회하는 리포지토리 등등 다양한 코드가 모두 JSP에 노출되어 있다.JSP가 너무 많은 역할을 한다. 수백 수천줄이 넘어가는 JSP를 떠올려보면 정말 지옥과 같을 것이다.MVC 패턴 개요MVC 전의 문제 유지보수가 어려움너무 많은 역할 하나의 서블릿이나 JSP만으로 비즈니스 로직과 뷰 렌더링까지 모두 처리하게 되면, 너무.. 2024. 9. 5.
Spring | Spring AOP의 동작원리와 JDK Dynamic Proxy vs CGLIB Proxy 비교 및 Spring AOP와 AspectJ 비교 Spring AOP란Spring AOP는 스프링 프레임워크에서 제공하는 관점 지향 프로그래밍 기술이다.Spring AOP는 로깅, 보안, 트랜잭션 관리 등과 같은 공통적인 관심사를 모듈화하여 코드 중복을 줄이고 유지 보수성을 향상하는데 도움을 준다.관심 지향 프로그래밍(Aspect-Oriented Programming, AOP)란객체 지향 프로그래밍 패러다임을 보완하는 기술메서드나 객체의 기능을 핵심 관심사(Core Concern) 와 공통 관심사(Cross-cutting Concern) 로 나누어 프로그래밍을 하는 것을 뜻 함핵심 관심사 : 각 객체가 가져야 할 본래의 기능공통 관심사: 여러 객체에서 공통적으로 사용되는 코드여러 개의 클래스에서 반복해서 사용하는 코드가 있다면 해당 코드를 모듈화해서 공.. 2024. 9. 5.