백준BOJ/Python : 11651번 : 좌표 정렬하기 22024. 01. 03.1분좌표를 y좌표가 증가하는 순으로, y좌표가 같으면 x좌표가 증가하는 순서로 정렬한 다음 출력하는 문제
[2023 연말 회고] 나의 회고 일지2023. 12. 31.16분23년은 상실의 해였다. 회고를 통해 나는 많은 부분에서 발전했지만, 아직도 불확실한 미래에 대한 두려움과 걱정, 운전에 대한 두려움 등으로 제약을 받았다. 하지만 나는 낙관적으로 미래를 기대하며 발전해 나갈 수 있다고 믿는다.
백준BOJ/Python : 2798번 블랙잭2023. 12. 29.2분N장의 카드에 써져 있는 숫자가 주어졌을 때, M을 넘지 않으면서 M에 최대한 가까운 카드 3장의 합을 구해 출력하는 문제
BLEX 2023 12월 개발노트2023. 12. 25.1분⭐ 추가된 항목 💬 사용자 포스트 검색 사용자의 프로필 > 포스트에 검색 입력창이 추가되었습니다. 💬 태그 클라우드 페이지 추가 블렉스에 존재하는 모든 태그를 모아 볼 수 있는 태그 클라우드 페이지를 추가하였습니다. 태그명과 동일한 URL로 작성된 포스트는 태그 상세 페이지에서 태그를 대표하는 설명글로 표기됩니다. 💬 간편 발행 버튼 추가 포스트 발행시 …
NestJS/Typescript : JWT를 통한 인증과 인가 과정2023. 12. 01.13분로그인 기능 구현과 인증과 인가 방식에 대해 정리하고 nestjs/jwt 모듈을 통해 구현해보았다.
Diving Into Delta Lake - Unpacking The Transaction Log2023. 11. 24.13분이 블로그 포스트에서는 Delta Lake의 핵심 개념인 트랜잭션 로그에 대해 설명하고, 파일 수준에서의 동작 방식과 동시 읽기 및 쓰기 문제에 대한 해결책을 제공합니다. Delta Lake 트랜잭션 로그는 Delta Lake 테이블이 생성된 이후에 수행된 모든 트랜잭션을 기록하는 중앙 레포지토리 역할을 합니다. 이를 통해 사용자는 항상 최신 데이터 뷰를 볼 수 있으며, ACID 트랜잭션과 확장 가능한 메타데이터 처리, 타임 트래블 기능 등을 지원합니다. 또한 트랜잭션 로그는 Delta Lake의 원자성을 보장하는 메커니즘으로 작용하며, 파일 추가, 제거, 메타데이터 업데이트 등의 단계로 트랜잭션을 세분화하여 로그에 기록합니다. 이를 통해 Delta Lake는 테이블의 상태를 정확하게 추적하고, 시간 여행 기능을 지원하며, 데이터 파일을 제거해도 테이블의 상태를 유지할 수 있습니다. 또한 Delta Lake는 효율적인 읽기를 위해 체크포인트 파일을 사용하여 테이블의 상태를 빠르게 재현할 수 있습니다.
BLEX 2023 11월 개발노트2023. 11. 23.1분⭐ 추가된 항목 💬 알림 설정 추가 원하는 알림만 수신할 수 있도록 알림 설정을 추가하였습니다. 기존 사용자를 비롯하여 서비스에 가입시 기본적으로 모두 비활성화 된 상태이므로 알림 수신을 원할 경우 활성화가 필요합니다. 💬 포스트 설정 페이지 필터 추가 [설정 > 포스트 관리 > 포스트]에서 정렬 외 포스트에 설정된 태그, 시리즈 및 …
Angular :: Pipe2023. 11. 23.8분이 글은 Angular에서 템플릿에 데이터를 변환하는 파이프에 대한 설명이며, 내장 파이프와 커스텀 파이프의 생성 방법과 옵션에 대해 다룹니다. 내장 파이프로는 AsyncPipe, DatePipe, CurrencyPipe 등이 있으며, 커스텀 파이프는 @Pipe 데코레이터를 사용하여 생성하며, 옵션으로는 name, pure, standalone 등이 있습니다. 코드 예시와 함께 파이프의 활용 방법을 자세히 설명하고 있습니다.
Angular :: Standalone Component2023. 11. 17.11분앵귤러에서의 모듈은 어플리케이션 구조를 정의하고 코드 재사용성을 높이는데 도움이 되지만, 종종 복잡성과 오버헤드를 증가시키는 문제가 발생한다. 이에 대한 해결책으로 나온 것이 SCAM 패턴이며, 그에 연장선으로 독립형 컴포넌트가 앵귤러 14부터 실험적으로 도입되었고, 모듈에 대한 이해 없이도 개발이 가능하여 진입 장벽을 낮추었다. 독립형 컴포넌트는 모듈과 공존하며, 레이지 로딩 및 부트스트랩 등 다양한 기능을 활용해 쉽게 앱을 만들 수 있다.
Spark 맛보기 - 4. RDD, DataFrame, DataSet API2023. 11. 12.26분RDD(Resilient Distributed Dataset)는 Apache Spark의 핵심 개념으로, 분산 환경에서 병렬로 처리될 수 있는 불변의 데이터 컬렉션이다. RDD는 불변성, 탄력성, 분산 처리의 특징을 가지며, transformation과 action을 통해 작업을 수행한다. RDD는 Spark의 초기 데이터 추상화 모델이며, DataFrame과 Dataset과 같은 고수준의 추상화가 도입되었다. RDD의 주요 문제로는 사용자가 연산 함수 안에서 무엇을 하는지 스파크가 알 수 없었고, 데이터 압축 기술을 적용하기 어려웠다. Spark의 구조 확립을 위해 일상적인 패턴을 사용하여 연산을 표현하고, 지원 언어에서의 API 사용이 가능해졌다. 스파크의 핵심 장점과 이득구조를 갖추면 더 나은 성능과 공간 효율성을 얻을 수 있다. Spark DataFrame은 이름 있는 컬럼과 스키마를 가진 분산 인메모리 테이블의 역할을 하며, 스파크의 기본 데이터 타입과 정형화 타입을 지원한다. 스키마와 데이터 프레임을 미리 정의하는 것은 스파크의 성능과 비용을 개선하는데 도움이 된다.
소소한 타입스크립트 팁2023. 11. 10.13분타입스크립트 코드 작성 시, 불필요한 선언 최소화, for in 활용하여 객체 순회, 동일 배열 다른 타입에는 구분값 활용, any 사용 최소화 및 안전한 타입 단언을 통해 코드 안정성 강화. 이러한 방법을 통해 코드의 가독성과 유지보수성을 향상시킬 수 있습니다.
Spark 맛보기 - 3. transformation, action, lazy evaluation2023. 11. 05.5분Spark의 RDD는 불변성을 가지고 있으며, 변경이 필요할 때는 새로운 RDD를 생성하는 transformation 과정을 거칩니다. transformation은 lazy evaluation으로 실행 계획을 최적화하고, narrow transformation은 하나의 입력 파티션을 연산하여 하나의 결과 파티션을 내놓으며, wide transformation은 다른 파티션의 데이터를 읽어 들여서 합치고 디스크에 쓰는 등의 작업을 합니다. action은 모든 transformation의 평가를 발동시키며, show(), take(), count(), collect(), save()와 같은 연산을 수행합니다. Lazy Evaluation은 쿼리 최적화와 데이터 내구성을 제공하며, 효율성, 최적화, 고비용 연산의 최소화를 특징으로 합니다.