만족은 하되 안주하지는 말자

기록해야 기억한다

전체 글 168

[HTTP] RESTful API

restful api 를 설명하라 rest 하게 잘 구성된 api 를 의미합니다. rest (Representational State Transfer) 하다는 것은 URI에 자원을 명시하고 HTTP method로 행위를 정의해서 서버로부터 데이터를 받거나 서버측에 데이터를 반영시키도록 하는 걸 명시적으로 잘 구현했다는 것이라고 생각합니다. REST 규약을 지키는 것은 여러 룰이 있겠으나 가장 와닿는건 아래 세가지입니다. HTTP 여야 함 stateless 해야 함 보안, 로드밸런싱 등 서버 내부구조를 클라이언트는 모르게 계층화해야함 HTTP to CRUD HTTP 메서드를 CRUD (기본으로 데이터 처리를 위해 갖추어야할 4가지 인터페이스 : 위키 발췌) 에 매핑하자면 아래와 같습니다. POST : Cr..

[JAVA] 길 찾기 게임

문제 https://programmers.co.kr/learn/courses/30/lessons/42892?language=java 코딩테스트 연습 - 길 찾기 게임 [[5,3],[11,5],[13,3],[3,5],[6,1],[1,3],[8,6],[7,2],[2,2]] [[7,4,6,9,1,8,5,2,3],[9,6,5,8,1,4,3,2,7]] programmers.co.kr 내 풀이 import java.util.*; class Solution { class Node { public int idx; public int x; public int y; public Node left; public Node right; Node (int idx,int x, int y) { this.idx = idx; this...

다형성: 우리는 왜 List list = new ArrayList(); 라고 쓸까?

제목의 질문은 아래로도 대치 가능합니다. 왜 우리는 인스턴스 타입을 클래스 대신 인터페이스로 초기화할까? 우리는 아래처럼 인스턴스를 생성 및 초기화해서는 안됩니다. ArrayList list = new ArrayList(); List list = new ArrayList(); 우리는 위처럼 List 인터페이스를 사용해야 합니다. 인터페이스를 구체클래스의 위에 타입으로 덧씌우는 것은 캡슐화와 낮은 결합도(loose coupling)의 핵심입니다. 나중에는 테스트코드를 작성하기도 쉬워지고 나중에 구현에 변경사항이 생겨도 변화에 쉽게 대응할 수 있습니다. 만약 나중에, 기획자가 요구사항을 바꿔서 ArrayList 가 아니라 Stack 의 기능으로 바꿔야 한다면 해줘야 하는 건 그냥 ArrayList 를 St..

[algorithm] balanced brackets (균형잡힌 괄호)

https://programmers.co.kr/learn/courses/30/lessons/60058 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr 알고리즘 문제중 주어진 문자열의 괄호가 제대로 닫히는 괄호쌍인지를 확인하는 경우가 있다. EX) (()()) , ((())(()) = True, False 이 때는 보통 Stack 을 활용하지만, stack이 아니어도 균형 여부를 구할 수 있다. ( 가 읽힌다면, left 변수를 더한다 ) 가 읽힌다면, left 변수를 1 뺀다 읽은 뒤 left 가 음수면, Fa..