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은 쿼리 최적화와 데이터 내구성을 제공하며, 효율성, 최적화, 고비용 연산의 최소화를 특징으로 합니다.
이번 SPA 개발은 앵귤러 어떠세요?2023. 11. 02.12분SPA(Single Page Application)는 하나의 HTML 파일에서 사용자가 웹 사이트의 모든 기능을 사용할 수 있는 웹 애플리케이션 형태를 나타냅니다. SPA는 웹 페이지를 새로고침하지 않고 필요한 영역만 업데이트하여 사용자에게 빠른 상호작용을 제공하며, 웹 사이트를 컴퓨터 프로그램이나 모바일 앱과 유사한 경험으로 만들어줍니다. 여기서는 앵귤러를 활용한 SPA 개발에 대한 내용을 다루고 있습니다.
[requests 라이브러리] 내가 아는 timeout은 너무 추상적이였어..2023. 10. 28.31분requests 라이브러리를 사용하여 python에서 HTTP 통신을 할 때 timeout 파라미터를 사용하여 응답을 기다리는 시간을 제한할 수 있다. 그러나 timeout 값이 정확히 어떤 순간을 의미하는지에 대해 혼동이 있을 수 있다. 이 글에서는 timeout 값이 client에서 server의 응답을 받는 시간을 의미한다고 가정하고, 실제 코드를 통해 그 동작을 확인해보았다. 또한, ConnectionTimeoutError와 ReadTimeoutError가 어디서 발생하는지와 timeout을 초과하는 경우에 왜 에러가 발생하지 않는지에 대해서도 알아보았다.
프로그래밍 명명법2023. 10. 22.0분파스칼 명명법(NameIs)을 쓸것//파일이름 #include "Name" using namespace Name Using Name //타입이름(클래스, 구조체, 컴포넌트) class Cls{} struct Str{} function Compon{ return {} } //속성 class Cls{ int num; int Num{ get{ return num; } set; } } //함수이름 public void Method{ return; } 카멜 명명법(nameIs)을 쓸것//변수이름 int num; str let arr=[] …
Spark 맛보기 - 2. 스파크 애플리케이션 개념2023. 10. 22.2분스파크 애플리케이션은 스파크 드라이버 프로그램과 클러스터의 실행기로 구성되며, SparkSession 객체를 통해 스파크 연산을 수행하는 API를 사용하여 프로그래밍할 수 있습니다. 스파크 애플리케이션은 여러 개의 job으로 변환되고, 각 job은 DAG로 변환되어 실행 계획이 됩니다. 연산은 여러 스테이지로 나뉘며, 각각의 스테이지는 최소 실행 단위인 스파크 task로 구성됩니다. SparkContext는 Spark 애플리케이션의 진입점이며, SparkSession은 SparkContext, SQLContext, HiveContext 등을 통합한 단일 진입점입니다.
Spark 맛보기 - 1. Spark란?2023. 10. 21.6분Apache Spark는 대규모 분산 데이터 처리를 위해 설계된 통합형 엔진으로, 속도, 사용 편의성, 모듈성, 확장성이라는 핵심 특성을 가지고 있다. Spark는 메모리 저장소를 지원하여 MapReduce보다 훨씬 빠르게 동작하며, MLlib, Spark SQL, Spark Streaming, GraphX 등의 라이브러리를 포함하고 있다. Spark는 스파크 코어를 중심으로 다양한 컴포넌트들이 함께 동작하며, 분산 아키텍처를 통해 데이터를 처리하고 분석하는 통합 엔진으로 사용된다.
파이썬 디렉토리 다루기2023. 10. 17.0분디렉토리 다루기#디렉토리 경로 import os os.getcwd() #현재 디렉토리 경로가 반환 os.chdir(path) #작업 디렉토리 경로가 변경 os.listdir() #현재 디렉토리의 리스트를 보여줌 os.listdir(path) #디렉토리의 리스트를 보여줌 os.path.exists(path) #파일,디렉토리가 있는지 확인 os.path.isdir(path) #디렉토리가 있는지 확인 os.path.isfile(path) #파일 존재 확인 os.path.getsize(path) #파일 사이즈 확인 os.makedirs(path) #디렉토리 생성 makedirs는 마지막 디렉토리가 존재하면 오류발생
Angular :: Component - 22023. 10. 17.10분앵귤러 컴포넌트에서 자식 엘리먼트 참조 및 컨텐츠 프로젝션에 대해 알아봅니다. @ViewChild를 사용하여 자식 컴포넌트를 참조하고 <ng-content> 태그를 활용하여 컨텐츠를 전달하는 방법을 다룹니다. 단일 및 다중 슬롯 컨텐츠 프로젝션에 대해 살펴보며 조건부 렌더링 방법도 소개합니다.
Angular :: Component - 12023. 10. 16.11분Angular 컴포넌트는 화면을 구성하는 기본 단위로 HTML 템플릿과 동작을 포함합니다. 컴포넌트의 라이프사이클 메서드는 초기화 및 상태 변화를 관리합니다. 스타일 캡슐화는 Shadow DOM, Emulated, 또는 캡슐화하지 않는 None 옵션 중에서 선택할 수 있습니다. 데이터 바인딩은 Input을 통해 부모 컴포넌트로 데이터 전송을 하고, Output과 EventEmitter를 통해 이벤트 바인딩을 처리할 수 있습니다.
Angular :: HttpClient2023. 10. 13.14분Angular의 HttpClient 모듈은 서버 통신을 간편하게 처리하는 도구로, Observable을 통해 비동기적으로 데이터를 요청 및 응답 처리합니다. Interceptor를 사용하여 요청 및 응답을 가공하여 데이터 캐싱과 같은 기능도 만들 수 있습니다. 모듈을 임포트하고 서비스에서 HttpClient를 주입하여 사용하며, 다양한 옵션과 Pipe 함수를 통해 요청 및 응답을 다룰 수 있습니다.
Angular :: Dependency Injection2023. 10. 10.5분Angular에서 의존성 주입은 놀랍게도 자동화되어 있습니다. 컴포넌트 생성자에 매개변수로 서비스를 선언하면 Angular 인젝터가 필요한 서비스를 주입해줍니다. 서비스의 재사용과 관심사 분리를 촉진하며, @Injectable로 등록된 서비스는 providedIn 설정을 통해 최적화된 싱글톤으로 관리됩니다. 또한, @Optional, @Self, @SkipSelf, @Host와 같은 데코레이터를 사용하여 의존성 주입 토큰을 제어할 수 있습니다.
Angular :: Directive2023. 10. 09.7분Angular 디렉티브는 HTML 요소 동작 및 모양을 제어하는데 사용됩니다. 기본 어트리뷰트, 구조 디렉티브, 커스텀 디렉티브, 커스텀 구조 디렉티브로 나뉘며, 사용자 정의 디렉티브를 생성하여 HTML 요소에 동작 및 스타일을 추가할 수 있습니다.
c++ 요약2023. 10. 08.12분C++ 요약C++ 기초 임포트. 입출력 #include <iostream> //iostream 헤더를 임포트 #include <stdio.h> using namespace std; //네임스페이스 선언 int main() { //방법 1 string s; scanf_s("%s", &s); printf("지역변수 : %s", s); //방법 2 string a; // cin >> a; //입력 getline(cin,a)가 띄어쓰기도 포함해줌 std::cout << a; //출력. 네임스페이스를 명시적 선언 return …
자바스크립트 요약2023. 10. 08.14분자바스크립트 요약자바스크립트 기초 자바스크립트 입출력 import * as readline from "readline" const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); rl.on("line", (line) => { console.log("input: ", line); rl.close(); }); rl.on("close", () => { process.exit(); }); 자바스크립트 자료형과 선언 //선언후에도 파이썬 처럼 자료형 변경이 자유로움 let id=10 //변수 const name="이름" //상수 …
파이썬 요약 2023. 10. 07.16분파이썬 요약파이썬 기초 import math import sys class test: def __init__(self, arr): self.arr=arr def logArr(self): for i in self.arr: print(i) inp = list(map(int,sys.stdin.readline().split())) cls=test(inp) cls.logArr() 파이썬 입출력 #입력 방법1 inp=input("값을 입력하세요") #값을 입력하지 않으면 빈 문자열 #방법2 단일 정수를 받을 때 import sys inp = int(sys.stdin.readline()) #방법 3 여러 정수를 …