전체 글 40

[Spring] Request Mapping - httpMethod

@RequestMapping 어떠한 메소드를 지정하지 않으면 http의 모든 메소드를 허용한다. Http method 종류 GET, POST, PUT, DELETE, PATCH 등... GET 특정한 리소스 가져오도록 요청 오직 데이터를 받기만 함 캐싱 사용 가능 *멱등성(Idempotent) POST 리소스 생성 및 수정 요청 요청 바디에 데이터 포함 캐싱 사용 불가능 PUT 특정 리소스를 현재 메시지의 값으로 생성하거나 만약 존재한다면 기존 리소스 덮어쓰기 Post와의 차이 POST의 URI는 보내는 데이터를 처리할 리소스 PUT 의 URI는 보내는 데이터에 해당하는 리소스 -> PUT은 리소스의 위치를 알고 URI를 지정해야 한다. 멱등성(Idempotent) PATCH 리소스를 부분적으로 변경 D..

Study/Spring 2021.08.15

[SQLD 자격증] 2주 만에 턱걸이 합격

2021년 목표 중 하나로 자격증 2개를 따는 것이 목표였다. 그중 하나로 선택한 것이 SQLD 자격증. 시험 난이도나 준비 기간에서 부담이 없으며, 내 커리어나 전공에 조금이나마 도움이 되지 않을까? 생각하였다. 21년 첫 시험인 40회에 신청을 하였다. 구체적인 준비 방법이나 계획 없이 무작정 신청을 하긴 했는데 막상 공부하려니 너무 귀찮았다. 근데 찾아보면 역시나 많은 사람들이 공부 방법이나 후기들을 상세하게 작성해 놓아서 나는 그 사람들의 노하우만 쏙쏙 빼먹으면 되었다. 나는 2주만 공부하고 합격하자는 마인드로 계획을 세웠다. 첫 번째, 1주 차 하루에 목차 하나씩 눈으로 읽고 연습문제를 풀기. (총 5장이니까 5일 소요) ※내가 참고한 SQLD 이론 사이트 https://blog.naver.co..

Study/Database 2021.07.10

관계형 데이터베이스 / 무결성(Integrity)

[1] 데이터 무결성이란 데이터의 정확성, 일관성, 유효성 그리고 신뢰성을 유지하고 보증하는 것. 데이터 모델링 과정에서 정의된 일련의 규칙에 따라 데이터가 생성, 수정, 삭제 될 수 있도록 프로그램이나 데이터베이스 기능을 이용한다. 그 결과로 권한이 부여된 사용자에 의해 야기될 수 있는 의미적 에러를 방지하고, 데이터베이스 내의 데이터가 현실 세계의 올바른 데이터를 갖도록 보장하는 것이다. [2] 데이터 무결성 종류 분류 설명 실체 무결성 실체는 각 인스턴스를 유일하게 식별할 수 있는 속성이나 속성 그룹을 가져야한다. ex) 기본키 제약, Unique 제약 영역 무결성 칼럼 데이터 타입, 길이, 유효 값이 일관되게 유지되어야 한다. ex) Date type에 알맞은 변환과 길이, not null 참조 ..

Study/Database 2020.12.03

프로그래머스 / 비밀지도(Java)

문제 설명 암호화된 비밀 지도를 해독하기 위해 지도 1과 지도 2를 합쳐야 한다. 입력 형식 입력으로 지도의 한 변 크기 n과 2개의 정수 배열 arr1, arr2가 들어온다. 1 ≦ n ≦ 16 arr1, arr2는 길이 n인 정수 배열로 주어진다. 정수 배열의 각 원소 x를 이진수로 변환했을 때의 길이는 n 이하이다. 즉, 0 ≦ x ≦ 2n - 1을 만족한다. 매개변수 값 n 6 arr1 [46, 33, 33 ,22, 31, 50] arr2 [27 ,56, 19, 14, 14, 10] 출력 ["######", "### #", "## ##", " #### ", " #####", "### # "] 내가 생각한 해별 방법 1. arr1과 arr2의 값을 이진수로 바꾼다. 2. 이진수를 비트 연산(OR)하..

Study/Algorithm 2020.11.16

프로그래머스 / 캐시 (JAVA)

문제 설명 캐시 크기에 따른 실행시간 측정 프로그램을 작성하는 것이다. 조건 1 : 캐시 교체 알고리즘 LRU(Least Recently Used)를 사용한다. 조건 2 : cache hit일 경우 실행시간은 1이다. 조건 3 : cache miss일 경우 실행 시간은 5이다. 조건 4 : 영문자로만 구성되어 있으며, 대소문자 구분을 하지 않는다. LRU 알고리즘 : 가장 오랫동안 사용되지 않은 데이터를 삭제하고 새로 추가 LFU 알고리즘 : 가장 적은 참조 횟수를 가진 데이터를 삭제하고 새로 추가 내가 생각한 해결 방법 가장 오랫동안 사용하지 않은 데이터를 삭제하는 것이기 때문에 큐를 사용하면 될것이라 생각하였다. 큐는 FIFO방식으로 그전에 cache가 hit 된다면 앞에 있는 데이터를 삭제하고, m..

Study/Algorithm 2020.11.04

프로그래머스 / 뉴스 클러스터링(JAVA)

문제 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브는 사용자들이 편리하게 다양한 뉴스를 찾아볼 수 있도록 문제점을 개선하는 업무를 맡게 되었다. 개발의 방향을 잡기 위해 튜브는 우선 최근 화제가 되고 있는 카카오 신입 개발자 공채 관련 기사를 검색해보았다. 카카오 첫 공채..'블라인드' 방식 채용 카카오, 합병 후 첫 공채.. 블라인드 전형으로 개발자 채용 카카오, 블라인드 전형으로 신입 개발자 공채 카카오 공채, 신입 개발자 코딩 능력만 본다 카카오, 신입 공채.. 코딩 실력만 본다 카카오 코딩 능력만으로 2018 신입 개발자 뽑는다 기사의 제목을 기준으로 블..

Study/Algorithm 2020.11.03

프로그래머스 / 짝지어 제거하기(Java)

문제 설명 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙입니다. 이 과정을 반복해서 문자열을 모두 제거한다면 짝지어 제거하기가 종료됩니다. 문자열 S가 주어졌을 때, 짝지어 제거하기를 성공적으로 수행할 수 있는지 반환하는 함수를 완성해 주세요. 성공적으로 수행할 수 있으면 1을, 아닐 경우 0을 리턴해주면 됩니다. 예를 들어, 문자열 S = baabaa 라면 b aa baa → bb aa → aa → 의 순서로 문자열을 모두 제거할 수 있으므로 1을 반환합니다. 제한사항 문자열의 길이 : 1,000,000이하의 자연수 문자열은 모두 소문자로 이루어져 있습니다. ..

Study/Algorithm 2020.10.13

프로그래머스 / 영어 끝말 잇기(Java)

문제 1부터 n까지 번호가 붙어있는 n명의 사람이 영어 끝말잇기를 하고 있습니다. 영어 끝말잇기는 다음과 같은 규칙으로 진행됩니다. 1번부터 번호 순서대로 한 사람씩 차례대로 단어를 말합니다. 마지막 사람이 단어를 말한 다음에는 다시 1번부터 시작합니다. 앞사람이 말한 단어의 마지막 문자로 시작하는 단어를 말해야 합니다. 이전에 등장했던 단어는 사용할 수 없습니다. 한 글자인 단어는 인정되지 않습니다. 다음은 3명이 끝말잇기를 하는 상황을 나타냅니다. tank → kick → know → wheel → land → dream → mother → robot → tank 위 끝말잇기는 다음과 같이 진행됩니다. 1번 사람이 자신의 첫 번째 차례에 tank를 말합니다. 2번 사람이 자신의 첫 번째 차례에 kic..

Study/Algorithm 2020.10.08

프로그래머스 / 폰켓몬 (Java)

문제 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. 홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있습니다. 첫 번째(3번), 두 번째(1번) 폰켓몬을 선택 첫 번째(3번), 세 번째(2번) 폰켓몬을 선택 첫 번째..

Study/Algorithm 2020.10.08

프로그래머스 / 크레인 인형뽑기 게임(Java)

문제 설명 게임 개발자인 크레인 인형 뽑기 기계를 모바일 게임으로 만들려고 합니다. 죠르디는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다. 게임 화면은 1 x 1 크기의 칸들로 이루어진 N x N 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 5 x 5 크기의 예시입니다). 각 격자 칸에는 다양한 인형이 들어 있으며 인형이 없는 칸은 빈칸입니다. 모든 인형은 1 x 1 크기의 격자 한 칸을 차지하며 격자의 가장 아래 칸부터 차곡차곡 쌓여 있습니다. 게임 사용자는 크레인을 좌우로 움직여서 멈춘 위치에서 가장 위에 있는 인형을 집어 올릴 수 있습니다. 집어 올린 인형은 바구니에 쌓이게 되는 데, 이때 바구니의 가장 아래 ..

Study/Algorithm 2020.09.24