본문 바로가기
반응형

IT39

Scala란 무엇인가? 스칼라 간단 소개 스칼라는 함수형 객체지향 프로그래밍 언어 입니다. 스칼라는 자바의 복잡한 단점을 해결하기 위해 만들어 졌습니다. 스칼라는 자바 바이트 코드를 사용하기 때문에 JVM위에서 실행 시킬 수 있습니다. 또한 자바의 클래스들을 바로 사용할 수도 있고, 자바에서도 스칼라 코드들을 호출할 수 있습니다. 그래서 자바 프로그래머들이 아주 빠르게 배울 수 있는 언어 중 하나입니다. 물론 문법적으론 차이가 있기에 따로 공부를 해야하긴 합니다. 주요 특징들부터 설명해보겠습니다. 함수형 프로그래밍 앞선 소개에서 스칼라는 함수형 프로그래밍을 표방한다고 간략히 적었었습니다. 그렇다면 함수형 프로그래밍이란 무엇일까요? 함수는 입력 값을 파라미터를 통해 입력 받고, 출력 값을 리턴하는 구조를 가지고 있습니다. 하지만.. 2018. 11. 5.
HDFS 하둡 분산 파일 시스템 소개HDFS(Hadoop Distributed File System)는 범용 하드웨어에서 분산 처리 파일 시스템을 운용하기 위한 기술이다. 기존의 존재하던 분산처리 파일 시스템들과 기술적으로 거의 동일하다. 특징은 특정 하드웨어를 의한 시스템이 아닌 범용 시스템에서 동작하도록 설계되었다는 것이다. 이러한 기능은 분산 처리를 위한 하둡의 기본 중 하나이다. 네임 노드와 데이터 노드HDFS는 마스터와 슬레이브 아키텍쳐를 가지고 있다. HDFS는 하나의 네임노드와 여러 개의 데이터노드로 구성된다. 네임 노드는 마스터 서버로서 파일 시스템의 네임 스페이스를 관리하고 클라이언트의 권한 등을 체크에 데이터의 접근을 관리한다. 데이터 노드는 네임 노드의 명령에 따라 이 블록을을 생성하거나 삭제, 복제하는 기능을 수행.. 2018. 9. 24.
프로젝트 생성 - 비주얼 스튜디오 팀 서비스(Visual Studio team services) 프로젝트 생성하는 법에 대해 설명하겠습니다. 생성할 때 입력해야하는 정보는 괸장히 적어서 아주 간단하게 만들 수 있습니다. 홈페이지에서 로그인 후 New Project를 버튼을 누르면 다음과 같은 페이지를 볼 수 있습니다 프로젝트 이름과 설명을 입력하고 소스 형상 관리는 어떤 것으로 할지 프로젝트 프로세스는 어떤 형태로 할지 설정을 하면 간단하게 프로젝트를 만들 수 있습니다. 소스 형상 관리 도구는 Git과 Team Foundation Version Control 둘 중 하나를 선택해서 사용 가능합니다. Git을 선택할 경우 MS에서 제공하는 무료 저장소를 이용하실 수도 있고 외부의 다른 Git을 이용하는 저장소를 이용할 수도 있습니다. 그 다음 프로젝트의 프로세스를 어떤 것으로 설정할 지 선택할 수도 .. 2018. 4. 18.
비주얼 스튜디오 팀 서비스(Visual Studio team services) 여러분은 소스 형상 관리를 위해 어떤 도구를 사용하시나요? 저는 이전에는 SVN을 사용하다 요즘은 Git을 사용합니다. 처음에는 SVN처럼 생각을 해서 개념이 좀 잘 안잡히기도 했지요. 그리고 저장소는 그럼 어디를 많이들 사용하시나요? Git을 사용하신다면 GitHub나 GitLab같은 곳을 많이들 사용하시겠지요? 머 로컬로 관리하시는 분도 계시겠지만요. 혹, Jenkins는 사용하시나요? 매일 매일 빌드와 테스트를 자동으로 수행하면서 현재 프로젝트의 상태를 확인시켜주는 고마운 도구 중 하나이죠. 프로젝트 관리는 어떤 도구를 사용하시나요? 이전 회사에서도 그렇고 지금 회사에도 그렇고 저는 Jira를 사용하고 있습니다. 이러한 모든 기능을 한 번에 그것도 무료로 제공해주는 도구가 있습니다. Visual S.. 2018. 4. 18.
하둡(Hadoop) 이란? 하둡(Hadoop)이란? 아파치 하둡은 대량의 데이터를 처리하기 위한 분산 처리 프레임워크이다. 하둡이라는 이름은 개발자인 더크 커팅의 아이가 가지고 놀던 코끼리 인형의 이름이었다. 그래서 하둡의 로고 역시 코끼리 모양이다. 아파치 하둡은 여러 패키지로 구성되어 있다. 대표적으로 HDFS(하둡 파일 시스템), MapReduce 등이 있다. 또한 Spark와 같은 하둡 프레임워크에 접근을 도와주는 프로젝트도 있다. Spark는 이전에는 하둡의 하위 프로젝트였으나 현재는 독립된 프로젝트이다. 이에 대해서는 나중에 따로 다뤄보도록 하겠다. 하둡 프로젝트에 포함되어 있는 기본 모듈은 다음과 같다.Hadoop Common: 하둡의 다른 프로젝트들을 지원하기 위한 공통 유틸리티Hadoop Distributed Fi.. 2018. 4. 16.
빅데이터란? Big Data란? 요즘 빅 데이터라는 단어가 우리 주변에서 많이 들리고 있다. 이 단어는 뉴스에서도 많이 나오고 요즘 참 많이 접하게 되는 단어이다. 정확히 빅 데이터란 무엇인지, 그리고 왜 이리 주목되고 있는지 알아보자. 프로그램에서 데이터랑 상당히 중요한 요소이다. 이 데이터들을 사용자가 원하는 형태로 가공하여 보여주는 것이 일반적인 프로그램이다. 이러한 데이터들을 잘 관리하기 위해 데이터 베이스에 저장하고 읽어들여 원하는 형태로 가공을 한다. 하지만 대량의 데이터를 처리하거나 고정된 형태의 데이터가 아닌 정해지지 않은 포맷의 데이터들을 분석해서 원하는 정보를 추출하는 기술들이 요구 되었다. 그래서 나온 기술이 빅 데이터이다. IBM에서는 데이터의 양(Volumn), 데이터 입출력 속도(Veloci.. 2018. 2. 25.
[Easy] 삽입 위치 구하기 문제: 정렬된 정수형 배열과 삽입하려는 정수 값이 인수로 입력되면 해당 값이 삽입 될 배열의 인덱스를 리턴하는 함수를 구현하라.단, 배열 내에 중복이 존재할 수 없다. 따라서 이미 배열에 값이 존재한다면 해당하는 값의 인덱스를 리턴한다. 예제 1:Input : [1,3,5,6], 5 Output : 2 예제 2:Input : [1,3,4,5], 2Output : 1 예제 3:Input : [1,3,5,6], 7Output: 4 풀이:바이너리 탐색 알고리즘을 활용하여 값을 찾아간다.바이너리 탐색 알고리즘은 중간 값을 구해서 중간 값이 타겟이 되는 값보다 크다면 왼쪽 편을 탐색하고 작다면 오른 쪽을 탐색하는 알고리즘이다.배열에서 중간이 되는 인덱스를 구하는 것은 작은 쪽 인덱스와 큰 쪽 인덱스를 합쳐서 2로.. 2017. 12. 14.
[Easy] 정렬된 배열에서 중복 삭제하기 문제: 정렬된 정수형 배열을 입력받아 중복이 존재하는 숫자를 삭제하는 함수를 작성하라. 반환 값은 새로 구성되는 배열의 길이이다. 또한 추가 메모리를 사용하지 않고 중복을 제거해야 한다. 예제입력 값 : [1, 1, 2] 리턴되는 값은 2이어야 하고 이 배열의 첫 번째 항목과 두 번째 항목은 1과 2로 되어야 한다. 새로 구성되는 배열의 길이 이후의 값은 어떤 값이 와도 상관없다. 풀이: 이미 정렬된 배열에서 중복 값을 찾는 것은 어렵지 않다. 배열의 길이가 2 이상인 경우 i를 1부터 시작해서 array[i] 과 array[i-1]을 비교해서 서로 같으면 중복되는 값이다. 이러한 것을 이용해서 우리는 배열을 수정해야 한다. 중복되는 숫자일 경우 다로 다음 인덱스로 넘어가고 만약 다른 숫자라면 변경될 배.. 2017. 12. 13.
[Easy] 정렬된 두 링크드 리스트 합치기 문제: 정렬된 두 링크드 리스트를 합쳐서 하나의 정렬된 링크드 리스트로 반환해라. 예제:입력: 1->3->4, 1->5->6출력: 1->1->3->4->5->6 링크드 리스트 클래스 구조는 다음과 같다. public class ListNode { int val; ListNode next; ListNode(int x) { val = x; } }구현되어야 할 함수의 선언은 다음과 같다.ListNode mergeTwoLists(ListNode l1, ListNode l2); 풀이:재귀함수를 이용하면 간단히 풀 수 있는 문제이다.첫 번째 노드의 값을 비교해서 더 큰 값이 작은 값의 next가 되면 된다.그리고 작은 값의 next와 큰 값과 다시 비교해서 merge하는 과정을 계속 반복하여 null이 나올 때 까.. 2017. 12. 13.
반응형