본문 바로가기

전체 글

(185)
스프링 부트 롬복 추가하기 롬복은 getter, setter, 기본 생성자, toString 등을 어노테이션으로 자동 생성해줍니다. 인텔리제이에서는 플러그인으로 쉽게 설정이 가능합니다. 롬복(Lombok) 추가하기 build.gradle 파일에 compile('org.projectlombok:lombok:')을 추가한 뒤 새로고침을 해주어 라이브러리를 내려받습니다. 롬복 플러그인을 설치합니다. Command + Shift + A (맥 기준) 단축키 후 Plugins를 입력해 설치 팝업으로 이동합니다. Marketplace 탭에서 Lombok을 검색해 설치한 뒤 인텔리제이를 재 시작합니다. 플러그인 설치는 한 번만 하면 되지만, build.gradle에 라이브러리를 추가하는 것과 Enable annotation processing을..
스프링 부트에서 테스트 코드 작성 견고한 서비스를 위해 개발자나 팀에서 TDD 혹은 최소한 테스트 코드를 작성합니다. 즉, 대부분의 서비스 회사는 테그트 코드에 관해 요구하고 있습니다. 테스트 코드 소개 중요하게 집고 가야 할 것은 TDD와 단위 테스트는 다른 이야기 입니다. TDD 테스트 주도 개발로 테스트 코드를 먼저 작성하는 것부터 시작합니다. 실패하는 테스트를 먼저 작성하며(RED), 테스트가 통과하는 프로덕션 코드를 작성하고(Green), 테스트가 통과하면 프로덕션 코드를 리팩토링합니다.(Refactor) 단위 테스트 이는 TDD의 첫 번째 단계인 기능 단위 테스트 코드를 작성하는 것을 이야기합니다. TDD와 달리 테스트 코드를 꼭 먼저 작성해야 하는 것이 아니며, 리팩토링도 포함라지 않습니다. 순수하게 테스트 코드만 작성하는 ..
인텔리제이로 스프링부트 시작하기 (IntelliJ, Spring Boot) 인텔리제이(IntelliJ) 인텔리제이가 이클립스에 비해 강점은 아래와 같습니다. 스마트한 추천 기능(Smart Completion) 다양한 리팩토링과 디버깅 기능 이클립스의 깃(Git)에 비해 높은 자유도 프로젝트 시작시 인덱싱을 하며 파일을 비롯한 자원들에 대한 빠른 검색 속도 HTML, CSS, JS, XML에 대한 강한 지원 자바, 스프링 부트 버전업에 맞춘 빠른 업데이트 체감으로 가장 크게 느끼는 것은 추천 기능입니다. 자동완성이 너무 잘 되어 있어서 잠시 이클립스를 볼 일이 있을 때 답답하더라고요. 하지만 인텔리제이는 유료로 제공되고 있습니다만, 학생분들이시라면 인증을 받으시고 교육용으로 이용 가능하십니다. 혹은 인텔리제이 커뮤니티(무료)로 제공되는 버전도 있기에 이를 사용하시는 것을 권장드립..
[바킹독: 알고리즘] 재귀 ※ (링크) 바킹독 유튜브 영상을 통해 학습한 내용을 정리한 것입니다. 본인은 JAVA를 활용해 학습하였습니다 비상업적 목적이며, 개인 복습을 위해 업로드한 글임을 다시 한 번 더 이야기드립니다. 본문의 모든 내용의 출처는 아래 명시된 링크와 같습니다. [목차] 알고리즘 설명, 연습 문제 1 - 거듭제곱, 연습 문제 2 - 하노이 탑, 연습 문제 3 - Z [실전 알고리즘] 0x0B강 - 재귀 안녕하세요, 재귀 파트를 시작하겠습니다. 지금 자신있게 말할 수 있는게 있는데 이 파트가 정말 어려울 것입니다. 물론 이전의 내용들 중에서도 군데군데 어려운게 있었겠지만 이번 단원에서 blog.encrypted.gg 출처: blog.encrypted.gg/943?category=773649 알고리즘 설명 재귀: 하..
[백준 10026번] 적록색약 - 자바(JAVA) 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 소요 시간: 39분 36초 R G B를 숫자로 바꾸어 배열에 입력했습니다. 생성된 배열을 같은 타입에 배열에 copy하였으며, Queue 또한 일반인과 적록색약인을 나누었습니다. 적록색약인의 경우 초록과 빨강의 차이를 느끼지 못한다는 전제조건이 있어, GREEN의 값을 1, RED는 0을 주어 적록색약의 BFS를 수행할 때, board[x][y]
[백준 7562번] 나이트의 이동 - 자바(JAVA) www.acmicpc.net/problem/7562 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net 소요 시간: 48분 46초 가장 많이 시간을 할해한 것은 문제를 제대로 파악하지 않았다는 것이었습니다..ㅎㅎ 이동과 원하는 위치 도달 문제이다보니, 당연히 BFS이며 상하좌우로 움직이겠거니 하는 안일함에 오래걸렸습니다. 체스에서 나이트의 이동 범위는 상하좌우가 아니라는 사실을 간과한채 문제를 풀어 이런 문제가 발생했네요. 중요한 것은 초기 위치를 표기한 Queue는 테스트 케이스마다 새로 인스턴스가 생성되어야 한..
[백준 2667번] 단지 번호 붙이기 - 자바 (JAVA) www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 소요 시간: 15분 00초
[바킹독: 알고리즘] 깊이 우선 탐색(DFS) ※ (링크) 바킹독 유튜브 영상을 통해 학습한 내용을 정리한 것입니다. 본인은 JAVA를 활용해 학습하였습니다 비상업적 목적이며, 개인 복습을 위해 업로드한 글임을 다시 한 번 더 이야기드립니다. 본문의 모든 내용의 출처는 아래 명시된 링크와 같습니다. [목차] 알고리즘 설명, 예시, BFS vs DFS [실전 알고리즘] 0x0A강 - DFS 드디어 01 02 03 이렇게 숫자를 넘어서 0A강에 도달했습니다. 아직 완결까지는 한참 남았지만 아무튼 힘을 내서 계속 잘 해봅시다. 아, 참고로 저번 단원보다는 내용이 많지 않아 blog.encrypted.gg 출처: blog.encrypted.gg/942?category=773649 알고리즘 설명 DFS( Depth First Search )는 다차원 배열에서..