분류 전체보기
-
Oh My ZSH로 리눅스 터미널 꾸미기24년 11월 이전/ETC 2019. 5. 20. 00:02
목차 개요 oh-my-zsh 적용하기 zsh 쉘 설치하기 oh-my-zsh 설치하기 테마 및 플러그인 적용하기 결론 개요 최근에 데스크톱 환경을 리눅스로 바꿨습니다. 도커에 관심이 생겼는데, 모든 기능을 사용하려면 리눅스를 사용해야 한다고 해서 바꾸었다죠... 제가 바꾼 리눅스는 바로 ubuntu-budge 19.04입니다! 원래는 elementary os 리눅스로 바꾸려고 했는데 다운로드하는데 시간이 7시간;; 그래서 이쁜 리눅스 없나 찾아보다가 우연히 발견하게 되었는데 굉장히 이쁘답니다. 리눅스 운영체제로 막상 바꾸고 나면, 리눅스 터미널이 굉장히 거슬립니다. 특히 벗지같이 이쁜 리눅스인 경우에는 더 심하더라구요. 최근 회사에서 mac os 기반으로 iterm2 + oh-my-zsh 조합으로 터미널을..
-
[자료구조/알고리즘]05. 큐24년 11월 이전/레거시-자료구조 2019. 2. 2. 01:59
CH 05 큐(Queue)목표 자료구조 큐에 대해 알아보고, C/C++ 프로그래밍 언어로 구현해봄으로써 큐의 대한 이해의 깊이를 늘려보세요! 목차1. 큐란 무엇인가? 2. 큐 ADT 3. C로 구현하기 4. C++로 바꿔보기 5. 결론 1. 큐란 무엇인가? 큐란 마치, 순서가 있는 대기열 같습니다. 그림처럼 은행의 대기열이 있다고 합시다. 당연히 먼저 온 사람이 먼저 나가게 되겠죠? 이것이 바로 큐입니다. 유식한 말로는 FIFO(First In First Out) 구조라고 하지요. 이번 시간에 우리가 구현할 큐는 배열 기반의 원형 큐입니다. 본격적으로 코드를 구현하기 전에 원형 큐가 무엇인지 살펴보도록 하죠.일반 배열로 큐를 구현했을 때, 우리가 가질 수 있는 문제점 중 하나는, 큐가 꽉차면, 재활용이 ..
-
[스칼라 문법편] CH09 기타 문법24년 11월 이전/레거시-누구나 쉽게 스칼라+플레이 2019. 1. 30. 22:18
* 이 포스팅은 책 "누구나 쉽게 스칼라 + 플레이 - 고락윤 한빛 미디어"를 읽고 정리한 것입니다. CH09 기타 문법 이번 장에서는 스칼라에서 꼭 필요한 문법이나 처음 배울 때는 다소 비중이 떨어지는, 그런 문법들을 공부하려 합니다. 자 바로 시작하죠. 01. 예외 처리 예외처리는 언제난 프로그래밍 언어에 있어서 중요한 부분입니다. 특히 자바에선 굉장히 엄격하게 관리되는 것으로 유명하죠. 때문에, 자바의 에외처리 코드는 불필요한 코드들이 많습니다. 스칼라에서도 비슷하지만 case 를 이용하여 보다 편한 try-catch 구문을 제공합니다. 보통 예외 처리 형식은 다음과 같습니다. try { //예외가 발생할 코드 } catch { case E => //에러 타입 E가 catch될 경우 로직 작성 //..
-
[스칼라 문법편] CH08 함수 컴비네이터24년 11월 이전/레거시-누구나 쉽게 스칼라+플레이 2019. 1. 30. 22:13
* 이 포스팅은 책 "누구나 쉽게 스칼라 + 플레이 - 고락윤 한빛 미디어"를 읽고 정리한 것입니다. CH08 함수 컴비네이터 이번 장에서 배울 함수 컴비네이터는 Java8의 Stream API와 유사합니다. 스칼라의 컬렉션은 대부분 함수 컴비네이터를 제공하여, 컬렉션을 가공 및 조작을 보다 쉽게 해줍니다. 지금부터 배워봅시다. 01. map 먼저 컬렉션 요소마다 변경하고 싶을 경우 map을 사용하면 됩니다. 다음 코드를 살펴보도록 하죠. //main val l = List(1, 2, 3, 4, 5) val n = l.map( i => i * i ) val m = l.map( i => s"ITEM ${i} ") println(n) println(m) n은 원본 l의 각 요소마다 자신을 곱한 요소를 갖는 ..
-
[자료구조/알고리즘]04. 스택 Stack24년 11월 이전/레거시-자료구조 2019. 1. 29. 23:36
CH 04 스택(Stack)목표자료구조 스택에 대해 알아보고, C/C++ 프로그래밍 언어로 구현해봄으로써 스택의 이해의 깊이를 늘려보세요 목차1. 스택이란 무엇인가? 2. 스택 ADT 3. C로 구현하기 4. C++로 바꿔보기 5. 결론 1. 스택이란 무엇인가? 스택이란 마치, 프링글스 통과 같습니다. 그림처럼, 프링글스는 맨 위의 과자를 꺼내지 않는한, 그 밑의 과자는 먹을 수가 없지요. 즉, 가장 나중에 들어온 과자가 가장 먼저 나가게 됩니다. 이를 LIFO (Last In First Out) 구조라고 합니다. 바꿔서 스택이란 자료구조라도 말합니다. 자 지금부터 본격적으로 스택에 대해 알아봅시다. 2. 스택 ADT 스택의 ADT는 다음과 같습니다. ADT Stackcharacters:arr: T[]데..
-
[스칼라 문법편] CH07 컬렉션24년 11월 이전/레거시-누구나 쉽게 스칼라+플레이 2019. 1. 29. 22:24
* 이 포스팅은 책 "누구나 쉽게 스칼라+플레이 - 고락윤 한빛 미디어"를 읽고 정리한 것입니다. CH07 컬렉션이번 장은 중요하기도 하고 아니기도 합니다. 책에서는 컬렉션(저는 배열조차 컬렉션으로 넣었습니다.)을 다음과 같이 소개하고 있습니다. "컬렉션은 스칼라에서 빈번하게 사용됩니다. 사실상 프로그램의 성능을 좌우하는 것도 이 컬렉션이 많은 부분을 차지하고 있지요. 프로그램의 전체적인 깔끔함과 설계의 아름다움을 유지하는 것도 컬렉션을 잘 다루어야 가능하기 때문입니다." 컬렉션은 여러 데이터들을 모아 놓은 저장소입니다. 각 데이터마다, 적절한 자료구조가 있는데, 이것이 바로 컬렉션이며, 이들을 잘 알아야 데이터를 효율적으로 관리할 수 있습니다. 이제부터 컬렉션에 대해서 하나 하나 알아가보도록 하죠! 0..
-
[스칼라 문법편] CH06 패턴 매칭24년 11월 이전/레거시-누구나 쉽게 스칼라+플레이 2019. 1. 29. 22:19
* 이 포스팅은 책 "누구나 쉽게 스칼라 + 플레이 - 고락윤 한빛미디어" 를 읽고 정리한 것입니다. CH06 패턴 매칭01. 패턴 매칭이란? 기존, Java, C, C++ 유저라면, 3장 제어문 파트에서 한 가지 빼먹었구나라고 생각하실 수 있겠습니다. 바로 switch문 때문인데요, switch 문은 특정 변수의 값에 따라 분기하고 싶을 때 쓰는 제어문이죠. switch(a){ case 1 : /*1 logic*/ break; case 2 : /*2 logic*/ break; default: /*default locgic*/ break; } switch 문은 if/else 구문으로 구성을 달리 할 수 있습니다. 또한, if/else에 비해 조건 처리문을 짜는게 제한적이기 때문에 근래에 들어서는 잘 쓰이..
-
[스칼라 문법편] CH05 FP의 기본! 함수24년 11월 이전/레거시-누구나 쉽게 스칼라+플레이 2019. 1. 29. 22:13
* 이 포스팅은 책 "누구나 쉽게 스칼라 + 플레이 - 고락윤 한빛미디어" 를 읽고 정리한 것입니다. CH05 FP의 기본! 함수 이번 장에서는 스칼라에서 중요한 철학 중 하나인 함수형 프로그래밍의 기본 함수에 대해서 알아보고, 추가로 몇 가지 더 알아보도록 하겠습니다. 01. FP의 배경 사실, Functional Programming, FP는 근래에 나온 개념이 아닙니다. 굉장히 오래된 개념 중 하나이지요. 근데 15~16년 이후부터 재조명을 받게 되었을까요? 이유는 컴퓨터의 발전 과정에 있습니다. CPU가 엄청난 속도로 발전하면서, 그 발전의 한계가 점점 드러나고 있지요. 바꿔 말하면 CPU 1개의 성능을 향상시키기 위한 발전의 속도가 떨어졌다는 뜻입니다. 그 결과 우리는 컴퓨터를 더 빠르게 처리하..