본문 바로가기
반응형

프로그래밍474

Base64 인코딩이란? Base64 인코딩이란?8비트(bit)씩 구성된 이진 데이터(Binary Data)를 6비트(bit)씩 잘라서 Base64에 해당하는 64개의 문자로 매핑하는 것이다.다시 말하자면, 8비트로 구성된 글자(아스키 문자)의 연속을 6비트씩 잘라서 새로운 글자(Base64)로 바꾼다. 여기 문자열 "apple"이 있다. 이를 Base64로 변환해보자. 문자 a p p l e십진수 97 112 112 108 101이진수 01100001 01110000 01110000 01101100 01100101 Base64로 직접 변환해보자해당 이진수를 6개씩 나눠서 Base64 코드표에 해당하는 문자로 매핑해 보자. 0110000101110000011100000110110001100101 이걸 6비트씩 나눠보자(8비트씩 .. 2024. 7. 24.
스칼라(Scala) 핵심 고차 함수 - map, flatten, flatmap map 메서드map 함수는 객체 컬렉션과 해당 객체에 정의된 함수 f를 사용하고, 컬렉션의 n번째 객체가 f에 의해 변환된 객체인 새로운 컬렉션을 반환한다. def square(n: Int): Int = n * nList(1, 2, 3, 4, 5).map(square) 그러면 컬렉션이 반환된다.List(1, 4, 9, 16, 25) 다음은 숫자 리스트를 가져와 각각의 제곱한 다음 제곱한 수를 모두 더하는 함수다. 표현식이 얼마나 간결한지 확인해 보자.def squreAndSum(lst: List[Int]): Int = list.map(square).sum 간단한 타입이 아닌 리스트가 있다면 어떻게 해야 할까? 예를 들어 Option을 확인하면 다음과 같다.def getUser(userName: Strin.. 2024. 7. 24.
함수를 변수로 사용하기, 함수를 반환값으로 사용하기 1급 객체(First-class citizen) 함수 다루기함수형 프로그래밍에서 함수는 1급 객체이기 때문에 변수에도 담을 수 있고, 반환값으로도 사용할 수 있다. using System;public partial class Program{ static void Main(string[] args) { // 변수 Func temp1 = x => x; Func> temp2 = x => y => x + y; Func>> temp3 = x => y => z => x + y + z; // 함수, 메서드 Func temp4(int y) => x => x + y; // 식 본문 멤버 Func temp5(int y) .. 2024. 7. 23.
스칼라(Scala) 리스트에 대해서 알아보자 스칼라(Scala) 리스트스칼라에서는 다음과 같이 List라는 키워드를 사용하여 리스트를 정의할 수 있다. > val a = List(1, 2, 3)a: List[Int] = List(1, 2, 3) 출력을 해보면 List[Int] 라고 출력되어 Int로 구성된 리스트가 만들어진 것을 알 수 있다. 또한, 다음과 같이 여러 종류의 타입으로 구성된 리스트를 만드는 것도 가능하다. > val b = List(1, "2", 3.0)b: List[Any] = List(1, 2, 3.0) 참고로,  Any는 모든 스칼라 타입의 부모이기 때문에 Any 타입의 변수에는 모든 타입의 값을 담는 것이 가능하다. > val a:Any = 1> val a:Any = "1"> val a:Any = 2.0> val a:Any .. 2024. 7. 23.
스칼라(Scala) 기본 문법에 대해서 알아보자 스칼라(Scala)스칼라(Scala)는 2004년 마틴 오더스키(Martin Odersky)에 의해 만들어진 JVM 위에서 돌아가는 또 다른 함수형 언어이다.클로저와 마찬가지로 모든 자바 라이브러리를 사용할 수 있으며, 객체지향과 함수형 패러다임이 절묘하게 결합되어서 주목받고 있다. 함수형 언어의 측면에서 봤을 때는 하스켈과 비슷한 느낌이 나며, 객체 지향의 측면에서는 자바의 냄새가 물씬 풍긴다. 따라서 자바에 익숙한 개발자들이 함수형 언어에 입문하기에 최적이자, 여러분이 실무에서 접할 가능성이 가장 높은 언어이기도 하다. 변수 val와 varval는 변경 불가(Immutable)한 변수를 만들 때 사용var은 변경 가능(Mutable)한 변수를 만들 때 사용val x = 1x = 2error: reas.. 2024. 7. 22.
모든 약수의 합을 나타내는 수학 기호 σ(시그마) 어떤 수에 대한 모든 약수의 합을 나타내자어떤 수에 대한 모든 약수의 합은 기호 σ(n)를 이용해서 나타낸다. 이 기호는 그리스 문자 시그마(σ)를 사용한다. 이를 통해 주어진 양의 정수 n에 대한 모든 약수의 합을 나타낸다. 사용 예시σ(n)은 "sigma of n" 또는 "the sum of the divisors of n"로 읽는다.σ(6)은 "sigma of 6" 또는 "the sum of the divisors of 6"으로 읽는다. 약수의 합 구하기σ(6)6의 대한 모든 약수는 1, 2, 3, 6이다.이 약수들의 합은 1 + 2 + 3 + 6 = 12따라서 σ(6) = 12이다. σ(12)6의 대한 모든 약수는 1, 2, 3, 4, 6, 12이다.이 약수들의 합은 1 + 2 + 3 + 6 = .. 2024. 7. 19.