본문 바로가기

전체 글186

[WEB] Restful API [API란?] - Application Programming Interface, 응용 프로그램 사이를 연결하는 인터페이스 - 응용 프로그램간의 상호작용 방식 - 어떤 응용프로그램에 다른 소프트웨어 기능을 제공한다 - 따라서, 개발하는 응용프로그램의 확장을 쉽게 해주고 응용 프래로그램의 기능을 다채롭게 해준다 [REST란?] 1. REST의 개념 - REST(REpresentation State Transfer, ) - Roy Fielding의 논문에서 처음으로 소개됨 - HTTP를 기반으로 필요한 자원에 접근하는 방식을 정해놓은, 분산 하이퍼미디어 시스템을 위한 소프트웨어 개발 아키텍처 (*아키텍처 : 애플리케이션을 설계, 제작하는 데 사용하는 패턴과 기술의 총칭) 2. REST의 특징 (RESTful .. 2024. 1. 8.
[TIL] 유데미X사람인 취업 부트캠프 16일차 / JShell, 자바 기초 [1. 오늘 배운 것] 1. JShell - 프로그램 전체를 작성하고 실행해 콘솔 창으로 출력할 필요 없이 코드 한 줄만 입력하면 바로 출력 - 오류를 즉각적으로 알 수 있음 - 시작 : 명령 프롬포트에 jshell 입력 - 종료 : /exit 입력 2. 연산 - 5 * 2 에서 5와 2는 피연산자, *는 연산자이다 - 연산자 : +, -, *, /, % 3. System.out.println() - 값 출력 - 비교 - 문자열 출력 시 "" 사이에 값을 넣어야 함 - ", ', \ 등을 출력할 때에는 앞에 슬래시(\)를 붙여줘야 함 - 줄바꿈이 필요한 경우 \n을 삽입 - 탭이 필요한 경우 \t 삽입 - 백스페이스가 필요한 경우 \b 삽입 4. 수학 Math.random() : 0에서 1 사이의 숫자를.. 2024. 1. 5.
[TIL] 유데미X사람인 취업 부트캠프 15일차 / SQL 데이터베이스 생성, 관리 [1. 오늘 배운 것] 1. 데이터 유형 - Boolean : true or false - Character : char, varchar, text - Numeric : integer, floating-point number - Temporal: date, time, timestamp, interval - UUID : Universally Unique Identifiers - Array : 숫자나 문자열 등을 저장 - JSON 2. 기본키 및 외래키 - 기본키(pk) : 모든 칸이 구별 가능하고 null값을 허용하지 않음 - 외래키(fk) : 다른 표와 얼마나 많은 관계를 맺고 있는지에 따라 다양한 키를 가지고 있을지 결정됨 - 외래키를 포함하고 있는 표를 차일드 표라고 부름 3. 제약조건 - 표에 있는.. 2024. 1. 4.
[TIL] 유데미X사람인 취업 부트캠프 14일차 / SQL Group By~ Join [1. 오늘 배운 것] 1. HAVING - 집계가 이미 수행된 이후에 자료를 필터링하기 때문에 GROUP BY 뒤에 위치함 - 집계 결과를 필터로 사용할 수 있음 - SELECT문의 SUM은 HAVING에서 사용할 수 없음 - 즉, GROUP BY까지 실행된 결과를 HAVING으로 필터링하는 것! 2. 연습 문제 - 결제 건수가 40 이상인 고객에게 플래티넘 지위를 할당할 때 자격이 있는 고객 반환 - SELECT customer_id FROM payment GROUP BY customer_id HAVING COUNT(*) >= 40; - 직원ID 2와의 결제 거래에서 100달러를 초과하여 사용한 고객의 고객id 반환 - SELECT customer_id, SUM(amount) FROM payment .. 2024. 1. 3.
[WEB] HTTP 멱등성 1. 멱등성(冪等性, idempotent) - 덮을 멱, 같을 등 (무슨 뜻인지 더 모르겠음) - 동일한 요청을 한 번 보냈을 때의 효과와 서버 = 동일한 요청을 여러번 보냈을 때 효과와 서버 - 서버의 상태가 변경된다는 것 : 주로 해당 서버의 데이터나 상태가 요청에 따라 수정되거나 갱신되는 것 (추가, 수정, 삭제) - 즉, 여러번의 호출에도 결과가 같음을 의미하며 변경이 발생하지 않는 것과는 다른 개념 - 멱등성을 가지는 메서드 : GET, PUT, DELETE, HEAD, OPTIONS - 멱등성을 가지지 않는 메서드 : POST, PATCH 2. 대표적인 메서드들의 안정성 - 호출시에 리소스가 변경되지 않는 성질 안전성 GET O POST X PUT X PATCH X DELETE X 3. 대표적.. 2024. 1. 3.
SQL과 NoSQL 문법 차이, 예제 1. 테이블 생성 MySQL MongoDB CREATE TABLE table_name ( id NUMBER NOT NULL, name VARCHAR(30), age NUMBER, PRIMARY KEY(id) ) db.table_name.insertOne ({ id: 1, name: “user”, age: 27 }) db.createCollection("table_name") table_name id name age 2. 데이터 삽입 MySQL MongoDB INSERT INTO table_name VALUES (1, “user”, 27) db.table_name.insertOne ({ id: 1, name: “user”, age: 27 }) 3. 테이블 삭제 MySQL MongoDB DROP TABLE .. 2024. 1. 3.
[WEB] HTTP 메소드 1. HTTP 메소드란? - 클라이언트와 서버 사이에 이루어지는 요청과 응답 데이터를 전송하는 방식 - 서버에 주어진 리소스에 수행하길 원하는 행동 - 서버가 수행해야할 동작 * 복습!! Response Request 메시지 구조 Request line(start line) : HTTP 메소드 + URI + HTTP 버전 2. HTTP 메소드의 종류 => GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS, CONNECT, TRACE 1) GET - 리소스를 조회하는 메소드 - POST메소드로 조회할 수 있으나, GET은 캐싱이 가능하다는 장점이 있다 (*캐시 : 어떤 특징이 있는 데이터 하위 집합을 저장하는 고속 데이터 스토리지 계층, 이를 사용하면 해당 데이터에 대한 요청.. 2024. 1. 2.
[TIL] 유데미X사람인 취업 부트캠프 13일차 / SQL 쿼리문 SELECT~GROUP BY [1. 오늘 배운 것] 1. SELECT문 - 테이블 내에서 검색할 때 쓰이는 명령어 - 기본 구조 : SELECT column_name FROM table_name - *(전체)를 사용하는 경우, 데이터베이스 서버와 애플리케이션 사이의 트래픽이 증가하여 결과 검색이 느려짐 - *은 전체 테이블이 꼭 필요하지 않은 이상 사용하지 않는 것이 좋음 - SELECT * FROM actor : actor라는 테이블의 전체 컬럼을 조회한다 - SELECT first_name , last_name FROM actor : actor테이블에서 first_name , last_name 컬럼을 조회한다. 컬럼의 순서는 작성한대로 출력된다 - 굳이 대문자로 작성하지 않아도 되지만 표준화된 작성법이 대문자 2. SELECT .. 2024. 1. 2.
[Web] 구글을 주소창에 검색했을 때 화면이 나오기까지의 과정 1. 사용자가 www.google.com을 주소창에 입력 - 웹 브라우저는 캐싱된 DNS 기록들을 통해 해당 도메인 주소와 대응하는 IP주소를 확인 - 캐시 : 어떤 특징이 있는 데이터 하위 집합을 저장하는 고속 데이터 스토리지 계층, 이를 사용하면 해당 데이터에 대한 요청이 있을 경우 데이터의 기본 스토리지 위치에 액세스할 때보다 더 빠르게 요청을 처리할 수 있음 2. 브라우저는 DNS 서버로 가서 웹사이트가 있는 서버의 진짜 주소를 찾는다 - DNS(Domain Name System) : 도메인 이름과 IP주소를 매핑해주는 서버 3. 브라우저는 서버에게 웹사이트의 사본을 클라이언트에게 보내달라는 HTTP 요청 메세지를 서버로 전송 - HTTP(HyperText Transfer Protocol) : 하.. 2024. 1. 1.
[WEB] HTTP란? [1. HTTP의 정의] - HTTP(HyperText Transfer Protocol) - HTML과 같은 하이퍼미디어 문서를 전송하기 위한 애플리케이션 계층 프로토콜 (* 프로토콜 : 서로 다른 두 개체가 데이터를 원활히 주고받기 위한 통신 규약) - 클라이언트-서버모델 : 리소스를 사용하는 앱(클라이언트)과 리소스가 존재하는 곳(서버)을 분리시키는 모델 - 무상태 프로토콜 : 각각의 요청을 독립적인 트랜잭션으로 취급하는 통신 프로토콜 [2. HTTP Response & Request 메시지의 구조] 1. Request (1) Request line(start line) : HTTP 메소드 + URI + HTTP 버전 - GET, POST 등의 요청이 들어감 - URL, 프로토콜, 포트, 도메인의 절.. 2024. 1. 1.
[TIL] 유데미X사람인 취업 부트캠프 12일차 / react-상태 [1. 오늘 배운 것] 1. react - 상태 - 웹사이트는 어느 상태에 있는데, 그 상태가 여러개일 수 있다 - 리액트는 상태를 관리하며 상태가 변경될 때마다 그에 따라 UI를 변경해준다 - 상태를 등록하고 이벤트 리스너를 생성해서 언제 바뀔지 알려줘야 한다 2. EventListner추가하기 - 이벤트를 추가하려면, on으로 시작하는 camelcase형식의 이름을 추가해야한다 - function 이벤트_이름을 작성하고 이벤트를 발생시킬 곳에 onchage={이벤트_이름} 추가 - 아래와 같은 코드에서는 textarea id="body"인 곳에서 변동이 발생할 때 마다 함수 changeBodyHandler가 호출됨 3. 상태 적용하기 - 입력한 문자를 출력하기 위해 변수 enteredBody를 사용한.. 2023. 12. 29.
[TIL] 유데미X사람인 취업 부트캠프 11일차 / react 1. React란? - 사용자 인터페이스 구축을 위한 자바스크립트 라이브러리 - 브라우저의 자바스크립트를 사용해 웹페이지와페이지에 표시되는 사용자 인터페이스를 재로딩없이 업데이트함 - 자연스러운 화면 전환 가능 2. 필요한 이유 - 자바스크립트만 사용하는 것은 번거롭고 오류도 발생하기 쉬움 - 리액트는 코드 내에 html코드 삽입 가능 - 복잡한 애플리케이션을 구축할 때 효과적 3. 바닐라 자바스크립트 vs 리액트 - 바닐라 자바스크립트는 명령형으로 작성 => 거쳐야 할 단계 정의 - 리액트는 선언형으로 작성 4. 리액트 프로젝트 생성하기 - React - CodeSandbx를 사용해서 프로젝트를 생성하면 node.js 실행 명령어를 쓸 필요가 없다 5. 자바스크립트 주요 내용 - 인라인 방식보다 자바스.. 2023. 12. 28.
[java] 프로그래머스 스쿨 모의고사 풀이 1. 학생 세 명의 정답 패턴을 각각 배열에 저장한다 2. list를 두 개 선언한다 - list는 모든 값을 저장하는 용도 - list2는 가장 큰 값을 가지는 사람의 번호를 저장하는 용도로 쓰인다 3. 함수 check에서 no[i%no.length]의 값과 정답의 값이 같다면 score를 증가시킨다 4. 학생 순서대로 check를 호출해서 list에 저장한다 5. list의 가장 큰 값을 max에 저장한 후, 반복문으로 정답의 수와 max값이 같다면 list2에 i+1을 추가한다 6. list2를 배열로 바꿔 반환한다 회고 - list의 가장 큰 값 = Collections.max - list를 배열로 : int[] array = list.stream().mapToInt(Integer::intV.. 2023. 12. 27.
[java] 프로그래머스 스쿨 문자사전 풀이 1. A, E, I, O, U를 순서대로 저장한 배열 words을 생성한다. - 이때, 어디에서든지 접근할 수 있도록 static으로 선언한다 2. 문자사전에 모든(?) 문자열을 저장할 수 있도록 words라는 리스트를 생성한다 - 이때, 어디에서든지 접근할 수 있도록 static으로 선언한다 3. dfs함수를 선언한다 - 파라미터로 전달된 문자 word를 words에 저장한다. - 파라미터로 전달된 words의 인덱스 depth가 5이면 (즉, U로 이루어진 문자가 끝나면) return - 반복문을 사용하여 word에 알파벳을 하나씩 더하고, depth에 1을 더해서 다시 dfs를 호출한다 - answer는 찾으려는 문자 word의 words내 인덱스 값이다 회고 - 완전탐색으로 안풀고 수학적으로.. 2023. 12. 27.
[TIL] 유데미X사람인 취업 부트캠프 10일차 / javascript의 if~else문과 반복문 [1. 오늘 배운 것] 1. 이중등호, 삼중등호 - 이중등호(==)를 사용하는 경우 값만 비교 - 삼중등호(===)를 사용하는 경우 값과 타입을 비교 2. 문자의 비교 - 문자를 비교할 때에는 같은 인덱스의 문자끼리 비교 3. 비교연산자 - 괄호가 없을 경우, &&연산자가 ||연산자보다 우선순위 4. if-else를 활용해서 글자 수 경고 만들기 - 글자 수는 최대 60까지 쓸 수 있다 - 남은 입력가능한 글자 수가 10이면 경고색으로 바뀐다 html Product Name 60/60 Submit css body { font-family: sans-serif; background-color: rgb(36, 35, 30); } form { margin: 3rem auto; width: 90%; max-wi.. 2023. 12. 27.
[TIL] 유데미X사람인 취업 부트캠프 9일차 / javascript, DOM을 이용한 작업 [1. 오늘 배운 것] 1. 전역 window&document - 전역변수 : 항상 코드 내에서만 사용 - alert() = window.alert() 2. DOM이란 무엇일까? - Document Object Model - 웹 개발의 개념으로 작성된 코드를 분석해서 데이터와 브라우저의 내부를 표현하는 것을 설명해주는 역할 - JTML 코드의 자바스크립트 표현이 있고 이 HTML 구조가 자바스크립트 객체의 구조로 변환되었기 때문에 자바스크립트 코드는 DOM과 상호작용 가능 3. DOM 탐색 - 자바스크립트에 console.log(window)를 입력하면 html 코드를 그대로 볼 수 있다. - 자바스크립트에 console.dir(window)를 입력하면 모든 메소드와 속성을 확인할 수 있다. - 자바스크.. 2023. 12. 26.
[TIL] 유데미X사람인 취업 부트캠프 8일차 / javascript기초 이해(함수, 배열, 메서드 등) [오늘 배운 내용] 1. 자바스크립트란? - 코드를 작성하는 데 사용되고 서버로 반환되는 언어 - 브라우저에 의해 실행될 수 있는 유일한 언어 - 사용자가 보는 페이지에 쌍방향 소통 기능을 추가함으로써 로딩된 페이지를 실제적으로 바꿈 2.기본 자바 스크립트 작업 - 사이에 자바스크립트 작성 - alert : 알림 - 결과 - 순서대로 알림이 뜬다 3. 변수 컨테이너 소개 - let으로 값 설정 시작 - 값 재설정 가능 - 변수명에 -, :, /, 공백 사용 불가 - 변수명: camelcase 방법을 주로 따름 - 결과 - 순서대로 알림이 뜬다 - 문장 끝에 세미콜론을 사용할 수 있다 4. js 파일과 html파일 연결 5. 배열 let hobbies = ['sports', 'cooking', 'readi.. 2023. 12. 22.
[TIL] 유데미X사람인 취업 부트캠프 7일차 / css변수 및 전환, html 양식 요소 [1. 오늘 배운 것] 1. CSS변수, CSS사용자 정의 속성 - 다른 속성의 값을 미리 정의하고 프로젝트에서 정의한 값을 사용하는 것을 도움 - html선택자에서 변수 정의 - var(변수명)으로 사용 html { --color-grey-100: rgb(236, 236, 236); /*변수 설정*/ /*숫자가 낮을수록 밝은색*/ background-color: var(--color-grey-100); } 2. 실행 중인 CSS변수 - 미리 정의된 값을 사용하면 값이 통일된 요소 하나하나의 값을 바꾸지 않아도 된다 - 즉 편리함 html{ --color-grey-100: rgb(236, 236, 236); --color-grey-400: rgb(134, 134, 134); --color-grey-600.. 2023. 12. 21.
[TIL] 유데미X사람인 취업 부트캠프 6일차 / 반응형 웹 제작, 유닛과 미디어 쿼리 [1. 오늘 배운 것] 1. 반응형 웹 기반 준비 -html 더보기 WebFood Browse Meals Browse Meals Browse Our Delicious Meals Risotto with Tiger Prawns Add to cart Cheese burgers Add to cart - css 더보기 body { font-family: "Open Sans", sans-serif; margin: 0; background-color: rgb(44, 41, 38); } a { text-decoration: none; } #main-header { height: 80px; display: flex; justify-content: space-between; align-items: center; backg.. 2023. 12. 20.
git의 충돌과 병합 + 병합 방법 1. 충돌 - 같은 파일의 같은 라인을 다르게 수정한 서로 다른 브랜치를 병합할 때 발생한다 - 같은 위치의 코드를 동시에 수정하면 발생! 예시) 같은 라인의 코드를 서로 다른 브랜치가 각각 다른 내용으로 수정하고 커밋하는 경우 1. branch : sd1 2. branch : sd2 branch sd1과 branch sd2를 병합하려 한다 결과 같은 파일의 같은 위치에 서로 다른 코드를 작성했기 때문에 오류가 발생한다. 수정한 두 개의 코드 중 어떤 것을 적용할지 선택해야 한다 +병합 편집기에서 보는 화면 2. 병합 취소하기 방금 전의 병합을 취소하려면 --abort옵션을 실행한다. git merge --abort 3. 충돌 해결하기 - branch sd1을 기준으로 하고, branch sd2를 bra.. 2023. 12. 20.
[TIL] 유데미X사람인 취업 부트캠프 5일차 / css grid, UTF-8 유니코드 [1. 오늘 배운 것] 1. %단위 작업 - width: n%; => 부모 너비의 n%를 사용 (반응형) - height: n%; => 부모 높이의 n%를 사용 (반응형) 2. 상단 탐색 모음 완료하기 - css header a{ color:rgb(255, 251,0); text-decoration: none; font-size: 20px; padding: 12px; text-shadow: 1px 1px 2px rgba(0,0,0,0.2); box-sizing:border-box; } header a:hover{ color:rgb(77, 77, 77); background-color: rgb(255, 251, 0); } - 결과 3. highlight섹션 만들기 - html에서 strong으로 두꺼운 글.. 2023. 12. 19.
[TIL] 유데미X사람인 부트캠프 4일차 / 깃 브랜치, css flexbox [1. 오늘 배운 것] 1. 브랜치 병합, 병합 충돌 수정 이해하기 - git branch : 브랜치 목록을 보여주는 명령어 - git branch -m 수정할_브랜치의_수정된_브랜치명 : 브랜치명을 수정 - git checkout 이동할_브랜치명 : 다른 브랜치로 바꾸기 - git checkout -b 생성할_브랜치명 : 브랜치를 생성하고, 그 브랜치로 위치를 바꾸는 명령어 - git merge 브랜치명 : 현재의 브랜치에 다른 브랜치를 합치는 명령어 - git log : 깃 로그 확인 - git add : 깃 커밋 전 커밋할 부분에 추가 - git commit -m : 깃 커밋과 커밋메세지 2. 브랜치&커밋 삭제, 단계적 &비단계적 되돌리기 - git branch -d 삭제할_브랜치명 : 브랜치 삭제.. 2023. 12. 18.
Git branch, IntelliJ에서 CLI로 사용하는법 목차 1. Git Branch란 2. 간단한 조작법 3. intellij에서 사용하기 4. 충돌 해결 [1. Git Branch란] 1. 개념 - 기존의 코드를 복사하여 독립된 공간에서 다른 코드를 짤 수 있는 공간 - 기본이 되는 브랜치는 master - 새 브랜치를 생성 후 코드를 작성하고 다른 브랜치에 병합(merge)하거나 삭제할수도 있음 - 기존의 코드를 다르게 바꿀 수 있는 연습장 개념 2. 조작하는 방법 - GUI 조작법 : 깃크라켄, 깃 데스크탑 등등 - CLI 조작법 : 각 환경의 터미널에서 사용 가능 - 통합개발환경 : Git을 조작할 수 있는 환경 제공 [2. CLI 기반 간단한 조작법] - 터미널에서 조작 - 브랜치 목록 확인 : git branch (*q를 눌러 원래 화면으로 돌아.. 2023. 12. 15.
[TIL] 유데미x사람인 취업 부트캠프 3일차 / 웹 제작과 호스팅, 깃 명령어 [1. 오늘 배운 것] 1. 실습으로 웹페이지를 하나 만들었다 2. 새로운 html 요소 - : 글자를 더 두껍게 하고 소리 톤을 바꾸어 전달 (강조) - : 소리 톤을 바꾸어 전달 (강조) - : 으로 부분을 나눠 편하게 코드를 볼 수 있다 3. 호스팅과 배포 - 호스팅 : 원격 컴퓨터라는 서버에서 해당 웹사이트의 코드를 저장하고 방문객에세 제공 - 배포: 웹사이트를 취급하는 것, 서버, 방문자에게 코드 제공 4. 웹 사이트 호스팅하기 (Netlify) - Netlify Drop으로 들어가서 파일을 업로드한다 - 그럼 끝이다 (...) - 가입하면 도메인을 구매할 수 있는데, 업데이트가 가능해진다 5. 상대경로&절대경로 - 경로를 설정할 때 상대경로로 지정하는 것보다 절대경로를 사용하는 것이 나을 수 .. 2023. 12. 15.