본문 바로가기

Computer-Sience/Etc4

[CS] Iterator / Generator 1. Iterator (반복자) 프로그래밍에서는 다양한 타입의 객체가 존재한다. 문자를 나타내는 char, 문자열을 나타내는 string와 정수를 나타내는 integer와 같은 타입과 Array나 List와 같은 다양한 형식을 객체는 가질 수 있는데, 그중에서 Array와 List 같이 각각의 원소를 순회할 수 있는 객체를 Iterable 하다고 칭한다. 이러한 점에서 유추할 수 있는 것처럼 Iterator 또한 크게 다르지 않다. 다음은 Python에서 반복자의 예시이다. Example : # 예제 리스트 a = [1,2,3,4,5] # 예제 리스트의 Iterator 객체 iter_a = iter(a) # 첫 번째 원소 print(next(iter_a)) # 두 번째 원소 print(next(iter_.. 2023. 5. 4.
[CS] 객체 지향 프로그래밍 (Object-Oriented Programming) / SOLID 프로그래밍을 시작하면서, 객체 지향과 절차 지향과 같은 용어에 대하여 많이 접해봤을 것이다. 프로그래밍을 하는 관점에서 어떠한 기준을 두고 프로그래밍을 할 지에 관한 것이기에 다소 낯선 개념으로 느껴질 수도 있을 것이다. 그중 객체 지향 프로그래밍(OOP)과 그 원칙인 SOLID에 관하여 다루어 볼 것이다. 1. 객체 지향 프로그래밍(Object-Oriented Programming) 객체 지향 프로그래밍은 말 그대로 프로그래밍에서 모든 관점을 객체 중심으로 설계하여 프로그래밍하는 것을 의미하며, 이는 사람이 사물을 하나의 객체로 이해하는 것처럼, 이를 프로그래밍에 도입한 개념이다. 객체 지향 프로그래밍에서 큰 개념은 3가지로 나뉘어서 구분할 수 있다. 객체 자체를 의미하는 Object, 객체를 추상화한.. 2023. 4. 22.
[CS] MPA(Multi Page Application) / SPA(Single Page Application) MPA(Multiple Page Application)는 여러 개(하나 또는 그 이상)의 Page로 구성된 Application이다. 전통적으로 사용해 왔던 방식이며 오래된 웹 사이트들을 방문하면 모두 MPA 방식으로 제작되어 있는 것을 확인할 수 있다. 또한, MPA는 SSR(Server Side Application) 방식으로 렌더링 하며, 새로운 페이지를 요청할 때마다 서버에서 렌더링 된 정적 리소스(HTML, CSS, JavaScript)가 다운로드된다. 위 사진을 예시로 들면 모든 페이지에 알맞은 정적 리소스가 있으며 페이지에 방문 시 해당 리소스를 요청한다. 페이지 이동하거나 새로고침 하면 전체 페이지를 다시 렌더링 하게 되는 방식이다. MPA는 다음과 같은 장단점을 가지고 있다. Pros :.. 2023. 2. 5.
[CS] Base64 (Encode/Decode) 1. 인코딩(Encoding) / 디코딩(Decoding) 인코딩(Encoding) : 파일에 저장된 정보의 형태나 형식을 특수한 목적(데이터 표준화, 보안 등)을 위해서 일정 규칙에 따라 다른 형태로 변환하는 행위 (암호화 또는 부호화라고도 불림) 디코딩(decoding) : 인코딩에 의해 변환된 데이터를 변환되기 전 기존의 데이터로 변환시키는 행위 (복호화라고도 불림) 2. Base64 Base64 : 2진수(Binary)로 이루어진 8bit 데이터를 문자 코드에 영향을 받지 않는 공통 ASCII 문자로 표현하기 위해 만들어진 인코딩 방식이며 64진법을 기반으로 사용한다. 3. 인코딩 과정 1. 원본 문자 -> 문자를 ASCII 기반의 8bit binary(2진수)로 변환 ex) 'A' -> [10진.. 2022. 11. 30.