본문 바로가기

전체 글

(364)
API란? (인터페이스 | HTTP | Open API) 정말 무수히도 많이 들던 API는 과연 무엇인가.프로그래밍공부를 시작하면서 지금까지 API라는 단어를 정말 많이 들었다.하지만 막상 API에 대해 설명을 하라고 하면 무엇인지 대충(?)은 짐작이 가지만, 제대로 설명하기가 힘들었다.. 그래서 이참에 API에 대해 제대로 알고싶어 인터넷 검색, 책, 영상 등을 찾아보았다.  Interface먼저 API의 I에 해당하는 Interface에 대해 간단하게 설명을 하고 시작하겠다.사전적 정의 : 두 물체, 공간, 단계 등의 공통 접점면 / 서로 다른 두 시스템, 장치, 소프트웨어 따위를 서로 이어주는 부분 또는 그런 접속 장치--> 뭔가 두개(사람 - 사람[ex:채팅창], 사람 - 기계[ex:키보드], 기계 - 기계[ex:모니터 포트])의 어떤 걸 연결시켜주고 ..
07_convertListToObject [ 문제 ] 입출력 예시로 문제를 이해하자면, 입력받은 2차원 배열(배열 안에 요소가 배열인것. ex: [[1],[2]])에서 요소인 배열의 0번째 요소가 객체의 key, 1번째 요소가 객체의 value인 객체를 반환하는 것이다. 입력받은 배열이 const arr = [['make', 'Ford'],['model', 'Mustang']]이면, 0번째 요소인 'make', 'model'이 key, 'Ford', 'Mustang'이 각각 value가 되어 {make : 'Ford', model:'Mustang'}을 반환한다. [ 풀이 ] 나의 로직은 다음과 같다. 1/ 먼저 빈 객체를 선언한다. 2/ 반복문으로 객체에 속성들을 할당한다. (하지만 처음에 많이 헤맸다... 내가 간과한건 빈 배열을 입력받은 경..
Markdown 정리 Markdown : 많은 프로그래밍 언어중 간단하지만 활용할 수 있는 분야가 다양한 언어. 2004년 John, Aaron에 의해 개발된 plain-text포맷을 기본으로 한 경량형 마크업 언어. .md확장자 파일로 텍스트 에디터에서도 키보드 하나로 쉽게 포맷하면서 빠르게 문서를 작성할 수 있다. 깃허브 README.md파일에서도 많이 이용된다. PR(Pull Request) 설명을 작성할때도 쓰이고, 디지털노트 사용할때도 사용된다. 1. Heading 총 6가지의 heading 스타일 지원. #의 개수에 따라 Heading 1부터 Heading 6까지 표현 가능 * #을 적은 후 꼭 띄어쓰기를 해야한다. * 아무 기호도 작성하지 않으면 일반 텍스트처럼 작성된다. * Heading 1 밑에는 라인이 추가..
06_letterCapitalize [ 문제 ] 문제 자체는 매우 간단하다. 입력받은 문자열의 각 단어 첫 글자를 대문자로 변경하여 반환하는 문제이다. 예를 들면, 'hello world'라는 문자열은 'hello'와 'world' 이렇게 두 단어로 이루어져있다. 이 단어들의 첫글자를 대문자로 변경한 "Hello World" 문자열을 반환하면 된다. [ 풀이 ] 나의 로직은 다음과 같다. 1/ 빈 문자열일 경우, 빈 문자열을 리턴한다. 2/ split 메서드를 이용하여 문자열 하나하나를 배열의 요소로 만든다. 3/ 반복문을 이용하여 전 요소가 " " 스페이스이면 새로운 스페이스, 혹은 새 단어의 시작이므로 toUpperCase메서드를 이용하여 대문자로 만든다. function letterCapitalize(str) { if(str === ..
05_firstReverse [ 문제 ] 문제 자체는 이해하기가 아주 쉬운, 간단한 문제이다. 입력받은 문자열을 순서를 반대로 하여 반환하는 문제이다. 입출력 예시를 보면, "codestates"라는 문자열을 받으면 순서를 반대로 한 문자열인 "setatsedoc"를 반환한다. [ 풀이 ] 나의 로직은 다음과 같다. 1/ 먼저 split 메소드를 이용하여 문자열 하나하나(띄어쓰기 포함)를 쪼개어 배열로 만든다. 2/ reverse 메소드를 이용하여 배열의 요소들을 반대로 만든다. 3/ 반복문을 이용하여 그 요소들을 문자열로 다 이어붙여서 반환한다. function firstReverse(str) { let arr = str.split(""); //변수를 선언하여 입력받은 str을 하나하나 쪼개어 배열로 만든 후, 할당한다. arr...
04_firstCharacter [ 문제 ] 아주 간단한 문제이다. 문제 그대로 입력받은 문자열을 공백 한 칸으로 구분하여 첫글자로만 이루어진 문자열을 반환하는 문제이다. 입출력 예시를 보면 'hello world'를 입력받으면 앞글자인 'h'와 'w'만 합쳐서 'hw'를 반환하는 것이다. [ 풀이 ] 나의 로직은 다음과 같다. 1/ 빈 문자열을 받으면 빈 문자열을 반환한다. 2/ 띄어쓰기를 기준으로 나눈 문자열을 배열로 만든다. 2/ let result = ""를 먼저 선언하고, 반복문을 이용하여 첫 글자만 result에 계속 붙여준다. function firstCharacter(str) { if(str ===""){ //빈 문자열을 입력받으면, 빈 문자열을 반환한다. return ""; } let arr = str.split(" "..
03_powerOfTwo [ 문제 ] 문제는 간단해보인다. 입력받은 수가 2의 거듭제곱인지의 여부를 boolean값으로 반환하는 것이다. 입출력 예시를 보면, 입력받은 수인 16은 2^4, 즉 2의 4, 2의 거듭제곱이므로 true값을 반환하고 22는 2의 거듭제곱이 아니므로 false값을 반환한다. 단, 주의사항은 while 반복문을 사용해야 한다는 것! [ 풀이 ] 내가 작성한 로직은 다음과 같다. 1/ 먼저 입력받은 수가 1인 경우에는 2의 0승이므로 true값을 반환시킨다. 2/ 입력받은 수가 1이 아닌 경우, 초기값이 2인 while 반복문을 이용하여 2를 곱해줌으로써 2의 거듭제곱으로 만든다. 그 값이 num과 일치하면 true를, 그렇지 않으면 false를 반환시킨다. function powerOfTwo(num) {..
02_computeWhenDouble [ 문제 ] 입출력 예시로 문제를 설명하자면, 7%의 연이율로 원금이 2배 이상이 될 때까지 걸리는 시간인 11년이 return된다. 예를 들어, 원금이 1원이고 연이율이 100%라고 해보자.(안다, 말도 안되는 이야기인걸..) 그럼 1년이 지나면 1원이었던 원금이 1+(1x100x0.01 원금x연이율x0.01)=1+1=2가 된다. 즉, 원래 원금이었던 1의 2배인 2가 된다. 그러므로 원금이 2배 이상이 될때까지 걸린 시간인 1이 return이 되는 것이다. [ 풀이 ] 1/ 먼저 원금을 capital이라는 변수로 선언한다. 2/ 1년 후 : capital + capital * interestRate * 0.01 = capital(1+1*interestRate*0.01)^1 3/ 2년 후 : capit..