jeeneee's devlog

Written by@WOOJIN
自强不息,厚德载物

GitHub

2021 카카오 인턴십 코딩 테스트

문제 1 - 숫자 문자열과 영단어 알고리즘 해시맵, 정규식 풀이 여러 접근 방법이 있겠지만 그 중에서도 해시맵을 이용하여 해결하였다. 올바른 입력만 주어진다고 했으니 문자열을 만들어가며 체크한다. 코드 문제 2 - 거리두기 확인하기 알고리즘 BFS, DFS, 완전 탐색 풀이 맨해튼 거리를 계산하며 이동하는 너비 우선 탐색 문제이다. 거리가 최대 2밖에 되…

[스프링부트] #2 소나큐브(SonarQube) 도입

소나큐브란? 소나큐브는 현재 기준으로 27개 프로그래밍 언어에서 버그, 냄새나는 코드, 보안 취약점 등을 리뷰하는 정적 코드 분석 도구이다. 정적 코드 분석 도구도 여러 가지가 있는데, 소나큐브는 커뮤니티 버전이 있어 일부 제한적이지만 개인이 쓰기엔 더할 나위 없이 좋은 툴이다. 위의 이미지는 홈페이지에 들어가면 바로 보이는 이미지인데, 말 그대로 개발…

[스프링부트] #1 gradle 멀티모듈 구성

데모 프로젝트인 realworld를 기반으로 글을 작성해보려 한다. 비록 작은 규모의 프로젝트지만 단일 프로젝트가 아닌 멀티모듈로 구성해보자. 멀티모듈에 대한 자세한 설명과 장점은 멀티모듈 설계 이야기 with Spring, Gradle 블로깅을 참고하면 좋다. 여기선 realworld란 root 프로젝트 안에 realworld-api, realworld…

[java-live-study] 12주차-애너테이션(Annotation)

자바에는 특수한 목적의 참조 타입이 두 가지가 있다. 하나는 11주차에 다룬 클래스의 일종인 열거 타입(enum, 열거형)이고, 다른 하나는 애너테이션(annotation)이다. 애너테이션 애너테이션은 코드에 대한 정보를 제공하는 메타 데이터의 일종이다. JDK1.5에 나와서 현재 Hibernate, Spring, Springboot 등 광범위하게 쓰이고…

스프링 프로젝트 생성(IntelliJ + Maven)

인텔리제이(IntelliJ)에서 스프링 MVC 프로젝트를 생성해본다. 프로젝트를 구성하는 방법은 여러 가지가 있겠지만, 여기선 우선 Maven으로 프로젝트를 생성하고 Spring MVC 프레임워크를 추가하여 기본 틀을 만든 뒤에 라이브러리를 Maven으로 관리할 수 있도록 설정할 것이다. Windows10 & macOS Big Sur IntelliJ ID…

[백준] 1506 경찰서

문제 링크 1506번: 경찰서 알고리즘 강한 연결 요소(SCC), 플로이드 와셜 풀이 도시 i 에 세운 경찰서가 도시 j 를 통제할 수 있으려면, i 에서 j 로 갔다가, 다시 돌아오는 경로가 존재해야 한다. 유향 그래프에서 정점 u 와 v 에 대해 서로 갈 수 있는 경로가 있다면 강하게 연결되었다고 할 수 있다. 강한 연결 요소 알고리즘으로 DFS 기반…

[java-live-study] 11주차-열거 타입(Enum)

자바에는 특수한 목적의 참조 타입이 두 가지가 있다. 하나는 클래스의 일종인 열거 타입(enum, 열거형)이고, 다른 하나는 12주차에 다룰 내용인 애너테이션(annotation)이다. 상수 vs 열거 타입 JDK1.5부터 열거 타입을 지원하기 전까진 정수 열거 패턴(int enum pattern)을 사용하였다. 이는 단지 여러 개의 정수 상수를 선언한 …

[java-live-study] 10주차-멀티쓰레드 프로그래밍

프로세스와 쓰레드 프로세스는 실행 환경을 포함하며 연속적으로 실행되고 있는 프로그램을 말한다. 쓰레드는 경량 프로세스라고도 불리는 만큼 적은 자원을 필요로 하며 프로세스의 자원을 공유한다. 모든 자바 어플리케이션은 적어도 한 개 이상의 쓰레드를 갖는다. 메모리 관리, 시스템 관리, 신호 처리 등과 같은 백그라운드에서 실행되는 많은 쓰레드도 분명 존재하지만…

2021 카카오 블라인드 코딩 테스트

문제 1 - 신규 아이디 추천 알고리즘 문자열 풀이 문제 조건에 맞게 문자열을 조작하는 문제이다. 재귀 함수가 필요없어 어렵지 않은 문제이다. 코드 문제 2 - 메뉴 리뉴얼 알고리즘 완전 탐색, 백트래킹, 해시, 정렬 풀이 코스 요리 메뉴는 최소 2가지 이상의 단품으로 구성되고 최소 2명 이상의 손님으로부터 주문된 조합이어야만 한다. 손님은 최대 20명이…

[java-live-study] 9주차-예외처리

자신이 작성한 코드가 한번에 컴파일되고 실행된다면 좋겠지만 항상 뜻대로 되진 않는다. 이때 발생할 수 있는 것들이 바로 에러(Error)와 예외(Exception)이다. 예외처리는 어플리케이션이 처리되는 과정에서 특정한 문제가 발생했을 때 처리를 중단하고 다른 처리를 하는 것을 의미한다. 이번 기회에 예외처리에 대해 알아보자. Error과 Exceptio…