본문 바로가기
728x90
반응형

전체 글416

[Programmers] 외벽 점검 문제 2020 KAKAO BLIND RECRUITMENT > 외벽 점검 코딩테스트 연습 - 외벽 점검 레스토랑을 운영하고 있는 "스카피"는 레스토랑 내부가 너무 낡아 친구들과 함께 직접 리모델링 하기로 했습니다. 레스토랑이 있는 곳은 스노우타운으로 매우 추운 지역이어서 내부 공사를 하 programmers.co.kr 아이디어 이 문제를 풀기 위해 가장 중요하게 생각해야 될 것은 스카피의 친구들인 dist들의 배치 방식입니다. 처음 문제를 접했을 땐 그리디, 동적프로그래밍을 이용해야 되나? 라고 생각했지만 결국엔 순열로 dist들을 배치하여 풀었습니다. dist의 길이는 1이상 8이하이기 때문에 dist들의 순열을 구해도 문제될 것은 없었고 외벽을 점검할 dist의 순서, 탐색 시작 weak, 탐색 방향을.. 2021. 3. 12.
[Programmers] 순위 검색 문제 2021 KAKAO BLIND RECRUITMENT > 순위 검색 2021. 3. 11.
[Programmers] 합승 택시 요금 문제 2021 KAKAO BLIND RECRUITMENT > 합승 택시 요금 코딩테스트 연습 - 합승 택시 요금 6 4 6 2 [[4, 1, 10], [3, 5, 24], [5, 6, 2], [3, 1, 41], [5, 1, 24], [4, 6, 50], [2, 4, 66], [2, 3, 22], [1, 6, 25]] 82 7 3 4 1 [[5, 7, 9], [4, 6, 4], [3, 6, 1], [3, 2, 3], [2, 1, 6]] 14 6 4 5 6 [[2,6,6], [6,3,7], [4,6,7], [6,5,11], [2,5,12], [5,3,20], [2,4 programmers.co.kr 아이디어 이 문제는 문제를 보자마자 플로이드-워셜을 이용해야겠다는 생각이 났던 문제입니다. 왜냐하면 무지와 .. 2021. 3. 10.
[Java] Jsoup을 이용한 html 파싱 안녕하세요. J4J입니다. 이번 포스팅은 Jsoup을 이용한 html 파싱에 대해 적어보는 시간을 가져보려고 합니다. 파싱이란? 파싱은 한글로 뜻풀이를 해보면 구문 분석이라는 뜻으로 문장을 이루고 있는 구성 성분을 분해하여 구조화하는 것을 의미합니다. 이게 무슨 말이냐? 간단하게 말하면 화면을 만들기 위해 사용되는 html태그 및 정보들을 가져와 새로운 구조를 만든다고 생각하면 됩니다. 그리고 자바에서 html 파싱을 할 수 있도록 도와주는 라이브러리가 Jsoup입니다. html을 파싱하는 이유에는 사람들마다 다른 이유들이 존재하겠지만 저 같은 경우는 보통 웹 페이지에 있는 데이터를 가져와 여러 가지 테스트를 하고 싶을 때 사용합니다. 하지만 웹 페이지에 있는 데이터를 가져올 때 조심해야 될 점은 가져와.. 2021. 3. 9.
[Java] URL을 이용한 이미지 업로드 안녕하세요. J4J입니다. 이번 포스팅은 URL을 이용한 이미지 업로드에 대해 적어보는 시간을 가져보려고 합니다. 만약 본인의 파일을 선택하여 서버에 업로드하는 방법에 대해 알고 싶으시면 다음 포스팅을 참고하시면 됩니다. - 2021/03/04 - [IT/Spring] - [Spring] 파일 업로드 - MultipartFile(With. React) - 2021/03/05 - [IT/Spring] - [Spring] 파일 업로드 - MultipartRequest(With. React) 적용 방법 업로드를 할 타겟 이미지를 만들기 위해 임의로 사진 파일을 등록해보겠습니다. 등록한 위의 이미지의 경로는 https://blog.kakaocdn.net/dn/VIxFi/btqZqqf3QFS/n2otuLtHQo8.. 2021. 3. 8.
[Programmers] 카드 짝 맞추기 문제 2021 KAKAO BLIND RECRUITMENT > 카드 짝 맞추기 코딩테스트 연습 - 카드 짝 맞추기 [[1,0,0,3],[2,0,0,0],[0,0,0,2],[3,0,1,0]] 1 0 14 [[3,0,0,2],[0,0,1,0],[0,1,0,0],[2,0,0,3]] 0 1 16 programmers.co.kr 아이디어 해당 문제를 처음 접했을 때 어떻게 풀지 막막했었습니다. 여러 생각을 하던 도중 아이디어가 생각나지 않아 질문하기 메뉴를 통해 아이디어를 찾다가 순열을 이용하신 분이 있는 것을 보고 어떻게 풀어내야 할지 아이디어가 생각난 문제였습니다. 코드는 짧지 않지만 풀이법은 생각보다 간단했습니다. 탐색할 카드들을 순열을 통해 순서를 정하고 키 조작 횟수를 최소화하며 순서대로 카드를 찾아 가기.. 2021. 3. 7.
[Programmers] 메뉴 리뉴얼 문제 [프로그래머스] 2021 KAKAO BLIND RECRUITMENT > 메뉴 리뉴얼 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 아이디어 이 문제는 손님들이 주문한 단품 메뉴들의 조합을 어떻게 세부적으로 나눠서 몇 번 주문했는지를 확인하는지가 핵심이라고 생각합니다. 가장 먼저 생각난 방법은 조합입니다. orders 배열의 각 원소의 길이가 n이라고 했을 때 1부터 n개까지 택하는 모든 조합을 구하는 것을 생각했습니다. 조합을 이용해도 문제없이 문제를 풀 수 있다고 생각했지만 1부터 n개까지 모든 조합에.. 2021. 3. 6.
[Spring] 파일 업로드 - MultipartRequest(With. React) 안녕하세요. J4J입니다. 이번 포스팅은 MultipartRequest를 이용한 파일 업로드에 대해 적어보는 시간을 가져보려고 합니다. 이전 포스팅에서 MultipartFile을 이용한 파일 업로드에 대해 다뤘었는데 개인적으로 MultipartFile이 유동적으로 적용하기가 더 편리하게 느껴지고 또한 자세히 알아본 것은 아니지만 MultipartFile이 더 최신 기능인 것 같습니다. 한 마디로, 새롭게 파일 업로드 기능을 구현하고자 한다면 MultipartFile 사용을 추천합니다. 그럼에도 불구하고 MultipartRequest에 대해 포스팅을 하는 이유는 오래 지속되어온 시스템들엔 MultipartRequest를 사용하고 있을 수도 있기 때문에 추가적인 작업을 진행하시는 분들에게 도움이 되고자 작성.. 2021. 3. 5.
[Spring] 파일 업로드 - MultipartFile(With. React) 안녕하세요. J4J입니다. 이번 포스팅은 MultipartFile을 이용한 파일 업로드 방법에 대해 적어보는 시간을 가져보려고 합니다. 적용 방법 ※ 스프링과 관련된 코드는 모두 STS-3.9.12.RELEASE 버전을 기준으로 작성되었습니다. [ 1. pom.xml에 dependency 추가 ] commons-fileupload commons-fileupload 1.4 com.fasterxml.jackson.core jackson-databind 2.9.8 [ 2. servlet-context에 multipartResolver 추가 ] [ 2-1. xml에 설정할 경우 ] ... [ 2-2. Java에 설정 할 경우 ] package com.spring.multipartFile.config; impor.. 2021. 3. 4.
[Spring] Swagger 안녕하세요. J4J입니다. 이번 포스팅은 Swagger에 대해 적어보는 시간을 가져보려고 합니다. Swagger란? 스웨거는 개발자가 Rest API를 만들고 만든 Rest API에 대한 설계, 빌드, 문서화 등을 도와주는 오픈 소스 프레임워크입니다. 간단하게 말하자면 스프링으로 만든 Rest API를 한눈에 볼 수 있도록 자동화해준다고 생각합니다. 사용 이유 스웨거를 사용하는 이유는 협업을 위한 API 문서 자동화입니다. 개발 요건에 맞게 구현된 Rest API는 적게는 한 곳, 많게는 여러 곳에서 클라이언트 화면을 구성하기 위한 데이터를 호출하기 위해 사용됩니다. 결과적으로 API를 사용하기 위해 파라미터 값은 무엇이고 리턴 값은 무엇인지 등의 정보가 필요했고 스웨거는 관련 데이터를 스웨거만 보며 이.. 2021. 3. 3.
[Spring] Lombok 개요 ◎ Lombok이란? ◎ 장점 ◎ 단점 ◎ 적용 방법 ◎ 사용 방법 (캡슐화) ◎ 사용 방법 (로그) 안녕하세요. J4J입니다. 이번 포스팅은 Lombok에 대해 적어보는 시간을 가져보려고 합니다. Lombok이란? 롬복은 개발자의 노가다(?)성이 짙은 단순 반복 작업을 덜어주기 위한 라이브러리로 데이터 접근을 위한 객체인 DTO의 캡슐화하는 작업들을 자동으로 해줍니다. 또한 로그를 찍기 위해 loggerFactory 등을 사용하던 것도 단순히 어노테이션만 추가하면 로그를 출력할 수 있도록 해줍니다. 장점 롬복의 가장 큰 장점은 반복적인 단순 작업을 안 하도록 도와준다는 겁니다. 일반적으로 DTO 클래스를 작성할 때 접근 지정자가 private인 변수들을 작성한 뒤 getter, setter는 기본.. 2021. 3. 2.
[Spring] Filter / Interceptor 개요 ◎ Filter와 Interceptor의 역할 ◎ 실행 흐름 ◎ 처리되는 기능 ◎ 프로젝트 설정 (공통) ◎ 프로젝트 설정 (Filter) ◎ 프로젝트 설정 (Interceptor) ◎ 실행 화면 ◎ ServletContext 설정 파일 변경 (xml → Java) ◎ 파일 구성 안녕하세요. J4J입니다. 이번 포스팅은 Filter와 Interceptor에 대해 적어보는 시간을 가져보려고 합니다. Filter와 Interceptor의 역할 스프링에서 필터와 인터셉터의 역할은 공통 코드 처리입니다. 스프링을 이용하여 개발하다 보면 모든 클래스 파일 또는 일부분의 클래스 파일에 공통적으로 적용시켜야 하는 코드가 생길 수 있습니다. 파일마다 따로 적용시켜도 문제 될 것은 없지만 코드를 수정하는 등의 유지.. 2021. 3. 1.
[Spring] Rest API / @RestController(2) 개요 ◎ 들어가기에 앞서 ◎ 프로젝트 설정 ◎ 파일 구성 안녕하세요. J4J입니다. 이번 포스팅은 스프링에서 Rest API 구현을 위한 프로젝트 설정에 대해 적어보는 시간을 가져보려고 합니다. 들어가기에 앞서 이전 포스팅에서 Rest API와 @RestController가 무엇인지에 대해 간단하게 알아봤었습니다. 앞서 알게 된 개념들을 바탕으로 이번 시간에는 JSP와 스프링을 사용하여 Rest API의 구조를 만들어보겠습니다. JSP로는 사용자가 보게 될 화면을 만들것이고 스프링에서는 화면에서 가져다 쓸 API를 만들어 보겠습니다. 프로젝트 설정 ※ 스프링과 관련된 코드는 모두 STS-3.9.12.RELEASE 버전을 기준으로 작성되었습니다. [ 0. 프로젝트 초기 설정 (프로젝트 명: rest, 패키.. 2021. 2. 27.
[Spring] Rest API / @RestController(1) 개요 ◎ Rest API란? ◎ 통신 과정 ◎ 스프링에서 Rest API ◎ 비동기 / Jquery / Ajax 안녕하세요. J4J입니다. 이번 포스팅은 Rest API와 @RestController에 대해 적어보는 시간을 가져보려고 합니다. Rest API란? Rest는 Representational State Transfer의 약자로 HTTP URI를 통해 리소스를 명시하고 HTTP Method(GET, POST, DELETE, PUT)를 사용하여 리소스에 대한 행위를 표현하는 것입니다. API는 Application Programming Interface의 약자로 응용 프로그램에서 사용할 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있도록 만들어 둔 인터페이스를 의미합니다. 그.. 2021. 2. 24.
[Spring] 스프링을 이용한 MVC패턴 구현(6) - JSP를 이용한 화면 구성 개요 ◎ 들어가기에 앞서 ◎ 프로젝트 설정 ◎ 파일 구성 안녕하세요. J4J입니다. 이번 포스팅은 스프링을 이용한 MVC패턴 구현의 마지막 포스팅인 JSP를 이용한 화면 구성에 대해 적어보는 시간을 가져보려고 합니다. 들어가기에 앞서 이번 포스팅은 위의 스프링 MVC구조에서 빨간 박스에 포함되는 내용에 대해 적어보고자 합니다. 사용자 인터페이스 화면은 JSP를 이용하여 구현할 것이고 지금까지 작성해둔 코드들을 JSP에서 모두 사용해보며 카트에 물건도 담아보고 카트에 담겨있는 물건을 화면에서 확인해보겠습니다. 프로젝트 설정 ※ 스프링과 관련된 코드는 모두 STS-3.9.12.RELEASE 버전을 기준으로 작성되었습니다. [ 1. 한글로 된 데이터 값이 정상적으로 넘어가기 위해 web.xml에 filter .. 2021. 2. 22.
[Spring] 스프링을 이용한 MVC패턴 구현(5) - @Controller 구성 개요 ◎ 들어가기에 앞서 ◎ Controller란? ◎ 프로젝트 설정 ◎ ServletContext 설정 파일 변경 (xml → Java) ◎ 파일 구성 안녕하세요. J4J입니다. 이번 포스팅은 스프링을 이용한 MVC패턴 구현 중 다섯 번째인 @Controller구성에 대해 적어보는 시간을 가져보려고 합니다. 들어가기에 앞서 이번 포스팅은 위의 스프링 MVC구조에서 빨간 박스에 포함되는 내용에 대해 적어보고자 합니다. Controller란? 컨트롤러는 모델과 뷰 사이를 연결해주는 구간으로 비즈니스 로직이 처리된 모델과 사용자의 화면에 보일 뷰 이름을 리턴해줍니다. 컨트롤러로 사용되는 어노테이션은 보통 @Controller, @RestController 등이 있는데 @Controller 같은 경우는 이번 .. 2021. 2. 18.
[Spring] 스프링을 이용한 MVC패턴 구현(4) - @Service 구성 개요 ◎ 들어가기에 앞서 ◎ Transaction이란? ◎ Transaction 특징 ◎ Commit / Rollback ◎ @Service란? ◎ 프로젝트 설정 ◎ 설정 테스트 ◎ 데이터 롤백 테스트 ◎ RootContext 설정 파일 변경 (xml → Java) ◎ 파일 구성 안녕하세요. J4J입니다. 이번 포스팅은 스프링을 이용한 MVC패턴 구현 중 네 번째인 @Service구성에 대해 적어보는 시간을 가져보려고 합니다. 들어가기에 앞서 이번 포스팅은 위의 스프링 MVC구조에서 빨간 박스에 포함되는 내용에 대해 적어보고자 합니다. Transaction이란? @Service에 대해 이해하기 위해서는 트랜잭션의 개념부터 알고 있어야 합니다. 트랜잭션이란 데이터베이스에서 데이터 처리를 위한 하나의 논리적.. 2021. 2. 16.
[Spring] 스프링을 이용한 MVC패턴 구현(3) - MySQL, MyBatis, @Repository 구성 개요 ◎ 들어가기에 앞서 ◎ @Repository란? ◎ MyBatis란? ◎ 프로젝트 설정 ◎ RootContext 설정 파일 변경(xml → Java) ◎ 파일 구성 안녕하세요. J4J입니다. 이번 포스팅은 스프링을 이용한 MVC패턴 구현 중 세 번째인 MySQL, MyBatis, @Repository구성에 대해 적어보는 시간을 가져보려고 합니다. 들어가기에 앞서 이번 포스팅은 위의 MVC구조에서 빨간 박스에 포함되는 내용에 대해 적어보고자 합니다. DB는 MySQL을 사용할 것이고 MyBatis를 이용하여 DB와 Repository를 연결하는 설정을 해볼 예정입니다. @Repository란? @Repository는 스프링의 비즈니스 로직 처리에서 데이터베이스에 접근하는 구간입니다. 일반적으로 자바에.. 2021. 2. 13.
728x90
반응형