본문 바로가기

분류 전체보기

(180)
#5. REST API - Richardson API 4단계 성숙도, 좋은 REST API 특징 1. API 웹 애플리케이션에서 클라이언트와 서버는 프로토콜이라는 방법을 통해 요청과 응답을 하며 작동한다. 위와 같이 다양한 프로토콜이 있는 만큼 각 프로토콜마다 정확한 규정이 있고 이 규정이 지켜져야 컴퓨터가 정상 수행한다. 프로토콜의 사용 규정에 맞는 가이드라인이 API (Application Programming Interface) 이다. 2. API - CRUD 메소드 요청, 상황 적절한 메소드 CREATE (생성) POST READ (조회) GET UPDATE (수정) PUT (모든 정보 변경) / PATCH (일부만 변경) DELETE (삭제) DELETE 3. REST API API는 웹에서 사용되는 Data나 resource를 HTTP URI로 표현하고, 해당 resource를 고유의 U..
#4. 웹 ( WEB ) - 웹아키, 웹앱-아키, 웹앱-요청흐름, 웹앱요소,HTTP, SSR&CSR, Message(+패킷), 쿠키,세션,캐시,프록시 1. 웹 (WEB) 인터넷에서 제공되는 하이퍼 텍스트 시스템. ** 문서 안에 다른 문서의 위치를 포함하여, 문서 간의 정보를 서로 연관지어 참조할 수 있는 문서 2. 웹(WEB) 아키텍처 웹에서 제공되는 서비스는 주로 서비스 이용자 (클라이언트)와 서비스 제공자(서버)로 나뉜다. [2티어 아키텍처] 리소스가 존재하는곳(서버), 리소스를 사용하는 앱(클라이언트)를 구성으로 가진 아키텍처. [3티어 아키텍처] 리소스를 사용하는 앱(클라이언트), 리소스가 존재하는 곳(서버) + 리소스 정보들을 보관하는 곳(DB)의 아키텍처 3. 웹 어플리케이션 아키텍처 [웹 어플리케이션 아키텍처] 어플리케이션 내부의 요소들이 어떻게 상호간 소통하는지 설명하는 것. 유저가 웹 브라우저에 요청을 하면, 어플리케이션의 요소들( ..
Q10. 연속된 홀수 사이 "-" 추가하기. // update 완료 ==============해답================== package com.codestates.coplit; import java.util.*; public class Solution { public String insertDash(String str) { // TODO: /* 문자열 입력받아 연속된 한자리 홀수 숫자 사이에 '-' 추가한 문자열 리턴. 1. 0은 짝수 1. str을 기반으로 StringBuilder로 만든다. 2. 연속된 홀수 숫자를 찾는다. 홀수 다음 홀수i, i+1 */ if(str.length() == 0) { return null; } String result = "" + str.charAt(0); // 연속된 홀수 사이에 넣는거라 첫 숫자에 -를 넣을리는 없으니 0번 ..
#3. 네트워크 [프로토콜, TCP/UDP, IP&MAC, PORT, URL,URI, DNS] 1. 네이티브 애플리케이션 / 웹 애플리케이션 Native Application : 휴대폰과 같이 특정 기기에 설치하여 사용하는 어플리케이션. [장점] 1. 웹 어플리케이션 보다 빠르다. 2. 설치된 기기의 시스템/리소스에 접근이 용이하다. ex) GPS / 카메라 3. 인터넷 없이 사용이 가능하다. 4. 웹 어플리케이션에 비해 안전하다. => 앱 스토어에 올리는 과정에서 수준높은 심사를 거치기 때문. [단점] 1. 웹 어플리케이션에 비해 개발 비용이 더 들어간다. 2. 빠른 업데이트가 힘들다. => 업데이트가 된다면 다른 버젼으로 앱 스토어를 통해 출시를 해야한다. 3. 앱 스토어에 승인 받기가 힘들고 올리는데 비용이 발생한다. Web Application : 웹 브라우저를 통해 접근이 가능한 어플리케..
Q9. ABcheck // for문에서 중복되는 조건이 있을 경우 주의사항 ** ====================== 해답 ======================= public class Solution { public boolean ABCheck(String str) { /* 문자열str받음. 1. 'a'로 시작해서 'b'로 끝나는 길이5의 문자열있는지 2. 'b'로 시작해서 'a'로 끝나는 길이5의 문자가 있는지 1. 대소문자 구분 x 2. 공백도 한글자로 취급 3. 'a' 'b'는 중복으로 등장 가능 4. boolean으로 리턴. 1. str > char 배열로 변경. 길이 5이상인지 => 1.에서 만든 char배열에서 A 혹은 B 로 시작하는게 있는지 찾고 해당 인덱스로부터 길이5의 새로운 char배열 복사함. 복사한 새로운 char배열의 마지막 요소가 B 혹은 A인지 ..
<알고리즘 Q3 - 구현> 보드 게임 // equals() vs == =============해답======================== public class Solution { public Integer boardGame(int[][] board, String operation) { /* 2차원 배열 board, 명령문 집합 operation. 시작 포인트 0,0 고정. 보드 밖으로 나가면 즉시 null. 1. U, D, R, L 일 경우 변경되는 점 정리 2. board[i][j]에서 i, j가 음수가 되면 무조건 null return. */ // 점수들의 합계가 될 변수. int score = 0; // String 타입의 operation에 명령문 U,D,L,R 이 있으므로 // 각각의 문자들을 문자형 배열로 변환함. char[] dir = operation...
<알고리즘 Q2 - Greedy> 편의점 알바 // 노가다성 && 배열 ==============해답=============== public class Solution { public int partTimeJob(int k) { // TODO: /* 금액 k 의 1원, 5원, 10원, 50원, 100원, 500원 동전의 최소 갯수 1. 주어진 금액 k에 큰 동전 단위로 먼저 나누고 남은 금액을 다음 단위로 나누며 쪼갠다. 500, 100, 50, 10, 5, 1 */ // 1. k금액 / 500원 으로 500원의 최댓값. int fiveHundred = k/500; // 2. (k금액 - (500원으로 나눈 값 *500원)) / 100 int aHundred = (k - (fiveHundred*500))/100; // 3. (k금액 - (500원으로 나눈 값*500) + (..
<알고리즘 Q1 - Greedy> 짐 나르기 // 답변 외움. ==================해답======================== public class Solution { public int movingStuff(int[] stuff, int limit) { // TODO: /* 박스에 최대 2개의 짐밖에 못넣음. 최대한 적게 사용하여 짐을 옮기기 위함. 짐의 무게를 담은 배열 stuff, 박스 무게 제한 limit 필요한 박스 개수의 최소값을 return. 1. for문으로 stuff 배열을 정리 2. stuff 요소들 2개의 합이 limit 이하여야함. 3. stuff.length는 가장 많은 박스의 사용 수. 4. 박스의 최소값 = stuff.length - (stuff[i] + stuff[j]