본문 바로가기

분류 전체보기

(295)
[기록] EventBridge rule, lambda, 시간대 cron 기반 스케줄링 aws lambda에 cron 스케줄러를 적용하려면 EventBridge 서비스를 이용한다. https://aws.amazon.com/ko/eventbridge/ 서버리스 이벤트 라우터 - Amazon EventBridge - Amazon Web Services Amazon EventBridge 이벤트 버스는 이벤트 수신, 필터링, 변환, 라우팅 및 전송에 도움이 되는 서버리스 이벤트 버스입니다. aws.amazon.com eventbridge는 이벤트 기반으로 애플리케이션을 연결하는 서버리스 서비스로, 버스 · 파이프 · 스케줄러 등의 방법을 통해 AWS의 다양한 애플리케이션을 연동하는데 도움을 준다. 현재 나는 네이버 뉴스 사이트로부터 뉴스 목록을 가져오는 기능을 구현했고, 이..
[javascript] 호이스팅, var, let, const 과거에는 let, const가 존재하지 않았기 때문에 var을 주로 사용함. 호이스팅 자바스크립트에서 변수 또는 함수를 스코프 내 최상위로 이동한 것처럼 동작하는 특성. 용어 자체는 ECMAScript 사양에 등장한 적이 없지만, 실제로는 자신이 속한 스코프의 최상단으로 이동하는 특성을 가지고 있으므로 호이스팅이라는 표현을 사용하여 설명한다고 한다. 호이스팅에 의해 선언 전에 사용한 경우는 자바스크립트 내에서 2가지 경우만 해당한다. var 함수 표현식(function expression) var apple = 'this is apple'; v(); console.log(apple); e(); function v() { apple = 'inner apple'; console.log(apple); cons..
[기록] ec2, lambda, 서버 구성에 대한 고민 최근 졸업 팀 프로젝트에서 백엔드 서버 구현 역할을 맡고 있다. 내가 맡은 역할은 크게 2가지로 나눌 수 있겠다. nest.js 기반 API 백엔드 구성 cron(스케줄) 기반으로 동작하는 데이터 스크래핑 로직 구현 현재 글에서는 2번 항목에 대한 고민을 기록한다. 이전에 네이버 뉴스 URL 분석 및 댓글 API 분석에 대한 글을 작성한 적이 있다. 뉴스 URL 분석: https://blaxsior-repository.tistory.com/235 댓글 API 분석: https://blaxsior-repository.tistory.com/231 두 가지 분석 결과를 기반으로 키워드에 대한 기사 및 댓글 목록을 가져오는 함수를 작성했다. https://github.com/blaxsior/crawler-pro..
[DB] crow feet notation 엔티티 사이의 관계를 표현할 때 사용하는 방법에는 여러가지가 있을 수 있다. 여기에 대해서는 ER Model에 대해 설명하는 과정에서 예전에 내가 써둔 글이 있어서 첨부한다. https://blaxsior-repository.tistory.com/104 [데이터베이스 03] Entity Relationship Model 하나의 프로그램을 설계할 때는 어플리케이션 디자인 및 데이터베이스 디자인이 필요하다. 이때 수행되는 데이터베이스 디자인은 엄밀하게 따지면 분석(analysis) 및 디자인(design) 작업을 포함하 blaxsior-repository.tistory.com Chen notation / min-max notation 위 글에 기록한 내용에 따르면 우리는 최소 2개의 표기법을 알고 있다. c..
[React-Quill] 에디터 영역 스크롤 바 만들기 react-quill 을 통해 에디터를 그대로 띄워보면 다음과 같다. 기본 설정에서도 글을 작성하는데는 문제가 없지만, 에디터 영역이 너무 작다는 점은 불편하게 느껴진다. 특히 해당 영역은 기본적으로 스크롤 기반으로 동작하지 않기 때문에 글을 길게 작성함에 따라 에디터 영역이 계속 증가한다. 티스토리 블로그 글쓰기처럼 에디터 영역이 계속 확장되어도 상관 없다면 이 동작 그대로 사용해도 되지만, 나는 에디터 글쓰기 란이 어느 정도 초기 공간을 가지고 있고, 그 이상은 스크롤 형식으로 동작하기를 원하기 때문에 이 동작을 변경해야 한다. Quill 공식문서에서는 scollingController 옵션을 통해 스크롤 대상을 변경할 수 있다고 설명하고 있다. https://quilljs.com/docs/confi..
[css] tailwind css - 화면 가운데 정렬 + 꽉 채우기 위와 같이 화면을 꽉 채우면서 form 요소는 가운데 정렬을 만들었다. {children} 화면 꽉 채우기: w-full min-h-screen 가운데 정렬: flex items-center justify-center 세로 방향으로 꽉 채우는 방법에는 h-full과 h-screen이 있다. h-full의 경우 height: 100%에 대응되는데, 이는 부모 요소에 영향을 받는다. 거슬러 올라가서 모든 부모를 h-full로 만들면 1사용할 수는 있긴 한데, 애초에 높이라는 개념이 없는 html, body 요소에 높이를 지정하는 것은 어울리지 않는다. h-screen은 height: 100vh에 대응되는 속성으로, 부모와 관계없이 동작한다. 이때 min을 붙이면 min-height: 100vh가 되는데, 이..
[크롤링] 네이버 뉴스 URL 쿼리 파라미터 현재 키워드를 기반으로 네이버 기사 본문 및 댓글 목록을 가져오는 프로젝트를 진행하고 있어 알게된 점을 정리해둔다. 네이버의 뉴스 검색 탭의 경우 옵션 탭을 통해 여러가지 필터 항목을 제시한다. 해당 옵션 목록을 단순 검색 뿐만이 아니라 크롤링에도 활용할 수 있다면 더 효율이 높아질 것이다. 또한 당연하게도 이러한 옵션들은 크롤링 과정에서도 활용할 수 있다. 위 보이는 옵션들은 url의 query parameter 상에 표현된다.일부 검색 항목을 변경해가면서 검색을 진행하면 어떤 쿼리 값이 옵션과 대응되는지 볼 수 있다. 예를 들어 아래와 같이 검색 옵션을 지정하고 "윤석열"을 검색해보자. 위 옵션에서 발생한 URL은 다음과 같다. https://search.naver.com/search.naver?wh..
[typescript] structural typing https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html#structural-type-system https://eclipse.dev/n4js/features/nominal-and-structural-typing.html nominal typing 타입의 이름을 기준으로 타입을 구분하는 방식. 두 유형의 이름이 동일하면 동일한 것으로 간주하며, 타입 T1이 T2의 서브타입으로 간주되기 위해서는 반드시 extends와 같은 구문을 이용하여 명시적으로 서브타입임을 선언해야 한다. 위 특성에 의해 nominal typing을 채택하는 언어에서는 내부 속성 및 메서드를 동일하게 가지고 있더라도 클래스의 이름이 다르면 다른 것으로 간주되며..