목록전체 글 (768)
우노
"객체 지향 프로그래밍에 대해 설명 한 번 해주세요." 여러 SW기업 신입사원 기술면접에서 워밍업 느낌으로 면접자들의 긴장을 풀어줄 겸 처음으로 자주 나오는 질문이다. 가장 기본이면서 이것마저 대답을 명확하게 못하면 첫인상이 안 좋아지는(?) 결과를 만드는 질문이며, 워밍업 같지만 꼬리에 꼬리를 무는 모든 질문의 시작(?)이다. 객체 지향 프로그래밍(Object-Oriented Programming, OOP)이란? 객체 지향 프로그래밍은 컴퓨터 프로그래밍 패러다임중 하나로, 프로그래밍에서 필요한 데이터를 추상화시켜, 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법 이다. 이러면, 이제 꼬리에 꼬리를 무는 질문이 시작된다. "객체 지향 프로그래밍을..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/crmKRN/btqZYlp4LWv/Kn3YnR0WnzKOPUAScK6Avk/img.png)
오버로딩(Overloading)과 오버라이딩(Overriding) 자바에서 다형성을 지원하는 방법으로 메소드 오버로딩(Overloading)과 오버라이딩(Overriding)이 있다. 오버로딩(Overloading)과 오버라이딩(Overriding)의 개념은 다르지만, 이름이 비슷해 참 헷갈린다. 오버로딩(Overloading) : 같은 이름의 메소드를 여러 개 가지면서 매개변수의 유형과 개수가 다르도록 하는 기술 오버라이딩(Overriding) : 상위 클래스가 가지고 있는 메소드를 하위 클래스가 재정의 해서 사용하는 기술 오버로딩(Overloading) 간단한 예제 코드를 통해 알아보자. Overloadingtest.java public class Overloadingtest { // 기본 test(..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/buC9Vg/btqZVl5kHhU/ak0tva93B6o05qRYnWZVD1/img.png)
상속(Inheritance)이란? 상속에 대해서 다루기 전에 우선, OOP(Object-Oriented Programming, 객체지향프로그래밍)가 무엇인지에 대해 알고 있어야한다. OOP는 다음과 같은 특징을 가지고 있다. 상속과 인터페이스 (계층성) 다형성, 사용편의성 (모듈화) 캡슐화, 정보은닉 자료 추상화 (모델링) 동적 바인딩 아래 그림을 통해, 상속에 대해 이해해보자. 상자 하나하나는 모두 객체(Object)이고, 자바 용어로는 Class이다. 이러한 계층을 표현하기 위해 만들어진 것이 바로 상속이다. 상속 시, 하위 객체(자식)는 상위 객체(부모)의 특징(메소드, 변수 등)을 물려받게 된다. 이 때, 상위 객체(부모)의 특징(메소드, 변수 등)을 '새롭게 구현'하는가, '..
Superinterface란? 예제 코드 public interface A { void doSomething(); } public interface B extends A { void doSomethingElse(); } 위 예제코드에서, interface A는 interface B의 Superinterface이다. 즉, interface B는 interface A로부터 상속된다. 따라서, 자식(B)는 부모(A)의 메소드를 그대로 사용할 수 있으며, 오버라이딩 할 필요 없이 부모(A)에 구현되어 있는 것을 직접 사용가능하다.
여러줄 주석처리 하는 방법 esc로 명령모드 들어가기 v를 눌러 visual 모드로 들어가, 주석처리를 원하는 부분 선택 : 키 누르기 norm i 타이핑 norm i# norm i// 여러줄 주석 해제하는 방법 esc로 명령모드 들어가기 v를 눌러 visual 모드로 들어가, 주석 해제를 원하는 부분 선택 : 누르기 norm 1x 타이핑 norm 1x : 가장 앞 문자 1개 없애기 norm 2x : 가장 앞 문자 2개 없애기
인자 (Argument) 함수 호출 시, 함수에게 전달하는 값 매개 변수 (Parameter) 함수 호출 시, 전달되는 인자를 받아들이는 변수 예제 void test( int A ) { printf("%d\n",A); } int main( int argc, char* argv[] ) { test( 10 ); } 인자 test() 함수 호출 시, 함수에게 전달하는 값 = 10 매개변수 함수 호출 시, 전달되는 인자를 받아들이는 변수 = int A
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Hf3zx/btqZKz3jHZ9/PeIqfVoyJBAPHLj5nqysR1/img.png)
에러 및 원인 MacOS는 매번 업데이트마다 여러 문제가 발생합니다. 따라서, 다수의 개발 툴(git, make, gcc)들이 아래와 같은 xcrun 에러를 뱉게 되는 경우가 있습니다. xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun 해결방법 xcode-select 명령어로 xcode cli만 따로 설치해서 이 문제를 해결할 수 있습니다. 명령어 입력 xcode-select --install 설치 완료
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/kZsTn/btqZpe7M06z/WNVi5kPoxcf9bRP1asGvZk/img.png)
Anomaly Detection(이상 탐지)이란? Anomaly Detection(이상 탐지)이란 전체 데이터에서 다른 패턴을 보이는 데이터를 찾는 것을 말한다. 다른 패턴을 보이는 데이터를 이상값(anomaly)라고 부르며, 이상 탐지는 사기 탐지, 침입 탐지, 안전 관리를 포함한 다양한 분야에 널리 활용된다. Anomaly Detection 은 정답 label 이 주어졌냐, 안 주어졌냐에 따라 지도학습이나 비지도학습으로 진행된다. 비지도 학습을 통해 진행하는 Anomaly Detection 의 종류는 아래와 같다. Isolation Forest One Class SVM Etc 따라서, 해당 포스트는 Anomaly Detection 의 비지도 학습 알고리즘 중 하나인, Isolation Forest에 ..
vi에서 블럭 지정 후, 한 번에 tab 넣는 방법 esc로 명령모드 들어가기 'v' 누르고 방향키로 블럭지정하기 '>' 누르기 (tab을 여러 번 넣기 위해선 '(숫자)>')
Spark SparseMatrix를 CSC format으로 생성 시, 매개변수 순서 행크기(rows) 열크기(cols) 열 압축 정보 배열(colPtrs) 열 순서대로 데이터의 행 인덱스 배열(rowIndices) 열 순서대로 데이터 배열(values) Breeze CSCMatrix를 CSC format으로 생성 시, 매개변수 순서 열 순서대로 데이터 배열(values) 행크기(numRows) 열크기(numCols) 열 압축 정보 배열(colPtrs) 열 순서대로 데이터의 행 인덱스 배열(rowIndices) Spark SparseMatrix를 Breeze CSCMatrix로 변환하는 코드 import org.apache.spark.mllib.linalg.SparseMatrix import breeze...