일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- TIL
- bean
- typescript
- 자료구조
- Deep Dive
- Kubernetes
- 프로그래머스
- dfs
- Linux
- 탐욕법
- OOP
- Spring
- puppeteer
- winston
- JWT
- 인접리스트
- LifeCycle
- REST API
- GraphQL
- node.js
- 코딩테스트
- html
- 알고리즘
- css
- Interceptor
- MySQL
- 인접행렬
- nestjs
- javascript
- java
- Today
- Total
목록전체 글 (241)
처음부터 차근차근
Page.on()이란Puppeteer 공식문서에는 이렇게 적혀있다.Listen to page events.This method exists to define event typings and handle proper wireup of cooperative request interception. Actual event listening and dispatching is delegated to EventEmitter.즉, 어떤 이벤트가 발생하면, 어떤 동작을 할 수 있도록 설정하는 것이다.class Page { on( eventName: K, handler: (event: PageEventObject[K]) => void ): EventEmitter;}이 메서드를 사용하려면 우선, 모든 Requ..
날짜와 시간 라이브러리가 필요한 이유우리가 프로그래밍을 하면서, 로그를 남기거나, 혹은 회원 생성 시간 및 게시글 생성 시간 등 날짜와 시간에 대한 기록이 필요하다.단순히 날짜와 시간만 기록하면 되는게 아닌가? 싶지만, 날짜와 시간을 계산하는 것은 의외로 복잡하다.날짜와 시간 차이 계산윤년 계산일광 절약 시간 변환타임존 계산이를 위해서 Java에서는 라이브러리를 제공하고 있다.Java 날짜와 시간 라이브러리*: 초는 나노초 단위의 정밀도로 캡처된다. (밀리초, 나노초 가능)**: 이 클래스는 이 정보를 저장하지는 않지만 이러한 단위로 시간을 제공하는 메서드가 있다.***: ZonedDateTime 에 Period 를 추가하면 서머타임 또는 기타 현지 시간 차이를 준수한다.LocalDate, LocalTi..
Overview웹 크롤링 시, page가 로딩되는 것을 기다리거나, 혹은 특정 API의 응답을 기다리거나 할 떄가 필요하다.이러한 경우, page의 waitForXXX 메서드를 사용해서 특정 시간, 응답까지 기다릴 수 있도록 만들어준다.이를 통해 웹 크롤링 시 page 로드 관련 대기 시간을 설정하는 것이 아니라, page가 load 되면 바로 진행할 수 있도록 하거나, 특정 API가 load 된다면 바로 작업을 진행할 수 있도록 하여 웹 크롤링 로직 시간을 단축할 수 있다.page.goto 시 waitUntil 관련waitUntil은 puppeteerLifeCycleEvent과 연관되어있다.load : 페이지의 모든 리소스(이미지, 스타일시트, 스크립트 등)가 완전히 로드되었을 때 발생하는 이벤트입니다..
NFS subdir external provisioner란 무엇인가?NFS subdir external provisioner는 PVC(Persistent Volumes Claim)을 통해 NFS 서버를 쿠버네티스 PV(Persistent Volum)로 동적 프로비저닝(dynamic provisioning) 하기 위한 automatic provisioner 입니다. PV(Persistent Volum)는 ${namespace}-${pvcName}-${pvName}으로 프로비저닝 됩니다. 공식 문서에도 보면, Kubernetes에는 내장 nfs provisioner가 존재하지 않는다.따라서 외부 provisioner를 사용하라고 나와있다. Storage ClassesThis document describes..
Kubernetes Volumes의 정의쿠버네티스 파드 내에서 돌아가는 컨테이너는 고유한 파일 시스템을 갖는다. 파일 시스템은 컨테이너 이미지에서 제공되기 때문이다.컨테이너 내의 디스크에 있는 파일은 임시적이며, 컨테이너에서 실행될 때 애플리케이션에 적지 않은 몇 가지 문제가 발생한다.컨테이너가 재시작될 때 파일이 손실된다는 것이다. 컨테이너를 다시 시작하면 초기화된 상태이기 떄문이다.Pod에서 같이 실행되는 컨테이너 간에 파일을 공유할 때 발생한다.이러한 문제를 해결하기 위해 쿠버네티스는 볼륨 추상화를 제공하고 있다.Kubernetes Volumes의 배경Ephemeral volume(일회성의 볼륨)은 pod의 life time에 따라 결정되지만, persistent volume(PV, 영구적인 볼륨)..
NFS란?Network File System의 약자로, 네트워크에 파일을 저장하는 메커니즘이다.이 시스템을 통해 사용자가 원격 컴퓨터에 있는 파일 및 디렉토리에 엑세스 할 수 있고 해당 파일 및 디렉토리가 로컬에 있는 것처럼 허용하는 분산 파일 시스템입니다.사용자는 운영 체제 명령을 사용하여 원격 파일 및 디렉토리에 대한 파일 속성을 작성, 제거, 읽기, 쓰기, 설정할 수 있습니다.NFS를 왜 사용할까??여러 사용자 혹은 서버에서 파일을 공유하는데 유용하게 사용된다.또한 서버가 망가지더라도 데이터는 유지되기 때문에, 데이터를 보존하는데 굉장히 좋다.그러나 단점도 존재한다.네트워크를 사용하여 파일을 접근하기 때문에 보안에 취약할 수 있다.NFS 구축 방법CentOS 7.9 버전 환경에서 구축하는 방법을 소..
Enum Typeenum은 Enumeration의 줄임말로, 번역하면 열겨라는 뜻이다.enum은 일련의 명명된 상수들의 집합을 정의하는 것을 의미하며, 프로그래밍에서는 이러한 상수들을 사용하여 코드 내에서 미리 정의된 값들의 집합을 나타낸다.Enum은 왜 만들어졌을까??Enum은 타입 안전 열거형 패턴(Type-Safe Enum Pattern)으로부터 만들어졌다.간단한 예시로, 특정 문자열을 사용해서 회원을 구분하는 경우, 아래와 같은 문제점이 발생할 수 있다.문자열은 오타가 발생하기 쉽고, 유효하지 않은 값이 입력될 수 있다."Gold", "gold" 등 다양한 형식으로 문자열을 입력할 수 있다.이러한 문제를 해결하기 위해 특정 범위로 값을 제한할려고 하였으며, 나열한 항목만 사용할 수 있도록 아래 예..
Wrapper Class란??Wrapper Class란 기본형을 객체로 감싸서 더 편리하게 사용하도록 도와주는 클래스이다. 즉, 기본형의 객체 버전이다.실제 현업에서도 기본형보다는 래퍼 클래스를 많이 사용한다.byte -> Byteshort-> Shortint -> Integerlong -> Longfloat -> Floatdouble -> Doublechar -> Characterboolean -> Boolean기본 래퍼 클래스는 다음과 같은 특징을 가지고 있다.불변이다equals로 비교해야 한다.간단한 예시를 통해 사용해보자.package lang.wrapper;public class WrapperClassMain { public static void main(String[] args) { ..
String 클래스란??자바에서 문자를 대표적인 타입은 char, String 2가지가 존재한다.기본형인 char 는 문자 하나를 다룰 때 사용한다. char 를 사용해서 여러 문자를 나열하려면 char[] 을 사용해야 한다. 하지만 이렇게 char[] 을 직접 다루는 방법은 매우 불편하기 때문에 자바는 문자열을 매우 편리하게 다룰 수 있는String 클래스를 제공한다.String 클래스를 통해 문자열을 생성하는 방법은 2가지이다.package lang.string;public class StringBasicMain { public static void main(String[] args) { String str1 = "hello"; String str2 = new Strin..
기본형과 참조형의 공유자바의 데이터 타입을 가장 크게 보면 기본형과 참조형이 있다.기본형 : 하나의 값을 여러 변수에서 절대 공유하지 않는다.참조형 : 하나의 객체를 참조값(주소)을 통해 여러 변수에서 공유할 수 있다.참조형을 자세히 살펴보면x라는 객체를 a와 b에서 참조하고 있다.이때 x의 속성 하나를 변경한다면, a와 b 둘 다 속성이 변하는 것을 알 수 있다.이는 추가적인 부수 효과를 가져온다.사이트 이펙트 를 가지고 오는데, 특정 부분에서 발생한 변경이 의도치 않게 다른 부분에 영향을 미치는 경우라고 생각하면 편하다.이런 경우를 막아야 하는데, 방법으로는a와 b가 처음부터 다른 인스턴스를 참조하면 된다.그러나, 이것은 근본적으로 참조값을 공유하는 방법을 막을 수 없다.불변 객체지금까지 발생한 문제..