본문 바로가기

분류 전체보기94

퍼펫티어를 이용한 크롤링(1) 퍼펫티어 npm 설치 npm i puppeteer 페이지 띄우는 코드 const url = ridibooks.ridiPage; const browser = await puppeteer.launch({ headless: true, }); const page = await browser.newPage(); 로그인, 진짜 별거 없다.. 실제로 로그인 페이지를 띄워서 로그인 정보를 입력 후 클릭한다. async login(page: any, url: string) { const { pageBtn, submitBtn, textCursor1, textCursor2 } = ridibooks.login; await page.goto(url); await page.waitForSelector(pageBtn); await.. 2024. 4. 11.
최종프로젝트 https://www.notion.so/teamsparta/1-dbe5da002a084e20bc120b8260836a03 회빙환(절대 풀네임을 물어봐선 안돼..) | Notion API 명세 - 큰 기능으로 토글화 해서 관리해보세요! teamsparta.notion.site 팀노션 https://www.notion.so/teamsparta/Daily-Scrum-780342274e014429b9cf9dc78f31e9aa Daily Scrum | Notion Built with Notion, the all-in-one connected workspace with publishing capabilities. teamsparta.notion.site 데일리 스크럼 프로젝트 소개: 웹소설 & 웹툰 종합정보 플랫폼.. 2024. 4. 9.
[JS] 선택정렬 / 버블정렬 선택정렬 배열에서 최솟값을 찾은 후, 최솟값과 맨앞에 위치한 값과 교체한다. 두번째 회전에서는 맨앞에 위치한 값을 제외한 최솟값을 찾아서 계속 바꿔주는 방법이다. 하나의 원소만 남을때까지 위의 과정을 반복한다. //마지막 숫자는 자동으로 정렬되기때문에 숫자 -1만큼 반복 function selectionSort(arr) { for (let i = 0; i < arr.length - 1; i++) { min = i; for (let j = i + 1; j < arr.length; j++) { if (arr[j] < arr[min]) { min = j; } } if (i !== min) { let swap = arr[min]; arr[min] = arr[i]; arr[i] = swap; } console.l.. 2024. 4. 9.
객체지향 프로그래밍 / 클래스형, 함수형의 차이 객체지향 프로그래밍이란 무엇이고 어떻게 활용할 수 있나요? 객체 지향 프로그래밍: 컴퓨터 프로그래밍 패러다임 중 하나로, 프로그래밍에서 필요한 데이터를 추상화 시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다. 객체 지향 프로그래밍의 장, 단점은? 장점 코드 재사용이 용이 남이 만든 클래스를 가져와 이용 가능, 상속을 통해 확장할 수 있다. 유지보수가 쉬움 절차 지향 프로그래밍에서는 코드를 수정할때 일일이 찾아 수정해야 하는 반면 객체 지향 프로그래밍에서는 수정해야 할 부분이 클래스 내부에 멤버 변수 혹은 메서드로 존재하기 때문에 해당 부분만 수정하면 된다. 대형 프로젝트에 적합 클래스 단위로 모듈화 시켜서 개발할 수 있으므로 대형 프로젝.. 2024. 4. 5.
http, https / OSI 7계층 http, https 의 차이점 HTTP(hyperText Transfer Protocol)의 약자로 웹 상에서 웹 서버 및 웹브라우저 상호간의 데이터 전송을 위한 응용계층 프로토콜을 의미한다. 과거에는 www상의 하이퍼텍스트 형태의 문서를 전달하는데 주로 이용되었다. 현재에는 이미지, 비디오, 음성 등 거의 모든 형식의 데이터를 전송할 수 있다. http는 기본적으로 통신규약임. 사용자가 클라이언트, 즉 브라우저 등으로 서버에 요청을 보내면 클라이언트의 요청을 받은 서버는 특정 자원에 대한 정보를 제공하거나 작업을 처리하게 된다. http 요청 메시지와 응답 메시지는 일정한 형식을 갖추어 데이터를 통신하게 된다. 컴퓨터간 상호 이해할수있는 형식인 셈이다. http는 1. 무상태성 2. 비연결성이라는 대.. 2024. 4. 4.
JWT, 토큰인증, OAuth JWT, Refresh, Access Token에 대해서 설명해주세요. 보통 서버가 클라이언트 인증을 확인하는 방식은 대표적으로 쿠키, 세션, 토큰 3가지 방식이 있다. 토큰 기반 인증 시스템은 클라이언트가 서버에 접속을 하면 서버에서 해당 클라이언트에게 인증되었다는 의미로 토큰을 부여한다. 기존의 세션기반 인증은 서버가 파일이나 데이터베이스에 세션정보를 가지고 있어야하고 이를 조회하는 과정이 필요하기 때문에 많은 오버헤드가 발생한다. 하지만 토큰은 세션과는 달리 서버가 아닌 클라이언트에 저장되기때문에 메모리나 스토리지 등 을 통해 세션을 관리했던 서버의 부담을 줄여준다. JWT(JSON Web Token) 인증에 필요한 정보들을 암호화시킨 JSON 토큰 JWT 기반 인증은 JWT토큰을 HTTP 헤더에 .. 2024. 4. 2.
대용량 트래픽 발생시 대응, ORM 사용시 쿼리가 복잡해진다면? 대용량 트래픽 발생 시 어떻게 대응해야 하나요? 먼저 서버는 왜 터질까? 서버 = 외부로부터 들어오는 요청을 받아 처리해주고 응답을 주는 프로그램이 돌아가는 어떤 컴퓨터 서버 또한 처리속도와 한계가 CPU, 메모리, 저장장치에 영향을 받는다는 말 웹 서버라는 프로세스가 있다면, 그 프로세스 안에는 다수의 요청을 시분할 처리하기 위한 스레드들이 있다. 스레드가 아무리 많아도 결국 task를 처리하는건 cpu이기 때문에 처리속도에는 한계가 있다. 또한 모든 task를 동시에 처리할 수 없기떄문에 결국 task를 큐에 넣어 순차적으로 처리하게 되는데, 이 큐는 메모리에 존재한다. 즉, 요청을 들어오는 족족 큐에 넣다보면 메모리 오버플로우가 날 수 있다는 것이다. 웹 서버는 결국 프로그램인데 메모리 오버플로우가.. 2024. 4. 1.
RDBMS 정규화, PK & FK RDBMS의 정규화에 대해 설명해주세요. 정규화란 RDBMS를 설계할때, 중복을 최소화하면서 데이터 구조를 짜는 프로세스 이다. 정규화를 하지않으면 *이상현상이 발생하기 때문이다. 이상현상 삽입이상 데이터를 테이블에 저장할때, 불필요한 데이터도 넣어야하는 경우 삭제이상 데이터를 테이블에서 삭제할때, 원하지 않는 데이터도 같이 삭제되는 경우 갱신이상 중복된 데이터 중에서 특정 부분만 수정되어 값이 모순을 일으키는 경우 PK, FK에 대해 설명해주세요. PK(기본키, 식별키): 테이블의 유일한 값을 가지는 필드 FK(참조키, 외래키): 다른 테이블의 PK 필드와 연결 2024. 3. 29.
HTTP 메서드 HTTP 메서드에 대해 설명해주세요. HTTP 메서드란 클라이언트와 서버 사이에 이루어지는 요청과 응답 데이터를 전송하는 방식을 말한다. 쉽게 말하면 서버에 주어진 리소스에 수행하길 원하는 행동, 서버가 수행해야 할 동작을 지정하는 것이다. 주요 메서드 GET: 리소스 조회 POST: 요청 데이터 처리, 주로 등록에 사용 PUT: 리소스를 대체(덮어쓰기), 해당 리소스가 없으면 생성 PATCH: 리소스 부분 변경 DELETE: 리소스 삭제 기타 메서드 HEAD: GET과 동일하지만 메시지 부분을 제외하고, 상태 줄과 헤더만 반환한다. OPTIONS: 대상 리소스에 대한 통신 가능 옵션을 설명(주로 CORS에서 사용) CONNECT: 대상 자원으로 식별되는 서버에 대한 터널을 설정 TRACE: 대상 리소스.. 2024. 3. 28.