본문 바로가기

전체 글

(597)
[남궁성 '자바의 정석'] 61~75강 ※ 이 글은 남궁성 저자의 '자바의 정석' 61~75강을 수강한 후 정리한 내용입니다. 1. static 메소드(클래스 메서드)는 일반적으로 사용하던 인스턴스 메서드와 다르다. 1) 객체 생성없이 '클래스이름.메서드이름()'으로 호출 2) 인스턴스 멤버(instance variable, instance method)와 관련없는 작업을 하는 메서드 3) 메서드 내에서 인스턴스 변수 사용 불가 2. 생성자에서 다른 생성자 호출시 "첫 줄"에서만 사용 가능. 안그럼 에러난다. 그리고 생성자에서 다른 생성자를 호출하려면 함수이름 대신 this()로 호출해야 한다. 참조변수 this랑은 전혀 다르니까 연관짓지 마라. 3. 프로그래밍은 설계 90 + 코딩 10 설계는 그리기이다. 그리기를 많이 해봐야 잘 그릴 수 ..
[남궁성 '자바의 정석'] 31~60강 ※ 이 글은 남궁성 저자의 '자바의 정석' 31강 ~ 60강을 수강한 후 정리한 내용입니다. 1. switch-case 문에서 case문의 값은 정수, 상수(문자 포함), 문자열만 가능하다. 2. 중첩 반복문의 바깥쪽 반복문에 이름(라벨)을 붙여주면 중첩 반복문 내부에서 break, continue 로 중첩 반복문을 한번에 빠져나갈 수 있다. 실제론 사용 안 함. 3. 배열은 기본적으로 0으로 초기화된다. 4. String 클래스의 내용은 변경될 수 없다. (Read Only) 복사가 일어날 뿐이다. 5. 자주쓰는 Arrays 함수 Arrays.toString(arr); // 1 차원 배열 Arrays.deepToString(arrDimentional); // 다차원 배열 Arrays.equals(arr..
[남궁성 '자바의 정석'] 16~30강 ※ 이 글은 남궁성 저자의 '자바의 정석' 16~30강을 수강한 후 정리한 내용입니다. 1. JAVA에서도 C 스타일의 출력이 가능하다. System.out.printf()를 쓰면 C 스타일로 출력이 가능하다. 2. 문자열 비교에는 == 대신 equals()를 사용해야 한다. ex) String str1 = "abc"; String str2 = "abc"; System.out.println(str1==str2); // true System.out.println(str1.equals(str2)); // true String str1 = new String("abc"); String str2 = new String("abc"); System.out.println(str1==str2); // false Sys..
[남궁성 '자바의 정석'] 1~15강 ※ 이 글은 남궁성 저자의 '자바의 정석' 1~15강을 수강한 후 정리한 내용입니다. 1. 자바의 버전 자바의 버전은 크게 SE, ME, EE 로 나누어져 있다. SE는 Standard Edition의 약자로 일반적인 프로그래밍을 위해 사용하는 JAVA 버전이다. ME는 Micro Edition의 약자로 모바일, 소형기기 프로그래밍을 위한 JAVA 버전이다. EE는 Enterprise Edition의 약자로 대기업 등에서 규모가 있는 프로그래밍을 위한 JAVA 버전이다. 자바의 주요 버전은 JDK 1.0 -> J2SE 1.2 -> J2SE 5.0 -> Java SE 8 -> ... 과 같이 Major 번호가 3씩 증가한다. 자바는 그동안 안정성을 이유로 버전 출시를 신중히 해왔지만, 타 언어들의 변화 속..
변화의 조건 (마이클 하얏트 - 모두를 움직이는 힘) “왜 누군가는 지속적으로 성장하고 누군가는 다람쥐 쳇바퀴 돌 듯 그 자리에 머물러 있을까?” “왜 어느 팀은 긍정적인 분위기와 결과를 만들어 내는 반면 다른 팀은 애쓸수록 상황이 안 좋아질까?” 최근 사직서를 제출한 이후 머리 속에 계속 남아있던 질문들이다. 사직서 제출의 경위를 잠시 얘기하자면, 2년 전 군 복무를 마치고 합류한 지금의 개발팀은 내가 IT 특기병으로 군 생활을 하며 경험한 개발 조직과 많은 차이가 있었다. 체계가 많이 부족하다고 느꼈었고 객관적으로 보았을 때 실력 면에서 많은 차이가 느껴졌다. 지난 2년 간 나는 생산성을 높이기 위한 여러 시도들을 했었고 그 시도들 대부분은 빛을 보지 못하고 사라졌다. 이 시간 동안 사업은 계속 확장되었고 우리는 시간이 갈수록 더 낮은 생산성으로 더 많..
DVR vs NVR DVR (Digital Video Recorder) 1. 특징 - 동축 BNC 케이블을 사용한다. - 아날로그 신호를 수신하고, 이 수신된 데이터를 AD 레코더를 이용해 비디오 데이터로 변환한다. 2. 장점 - 값이 싸다. - 아날로그 카메라와 연결하여 사용한다. 이 덕분에 비용이 많이 저렴해진다. 3. 단점 - NVR 시스템에 비해 유연성이 떨어진다. - 동축 케이블은 카메라에 전원을 공급하지 않기 때문에 카메라에 별도로 전원을 공급해야 한다. - 동축 케이블은 오디오를 지원하지 않기 때문에 오디오를 전송할 별도 케이블을 연결해야 한다. (카메라 DVR) NVR (Network Video Recorder) 1. 특징 - IP 카메라와 연결할 수 있다. - 비디오, 오디오 데이터를 수신한다. 2. 장점 ..
C# log4net을 XML 대신 코드로 사용하기 Java에 log4j 라는 오픈소스 로깅 라이브러리가 있듯이 C#에는 log4net 이라는 라이브러리가 있다. log4net의 일반적인 사용법은 XML 파일에 log4net 관련 설정을 한 후, 이 파일을 log4net의 XmlConfigurator.Configure() 함수로 등록하면 된다. 나는 지금까지 이 작업을 App.xaml.cs 파일에서 수행해왔다. 하지만 세상에 편한 일만 있을 순 없는 법.. 내가 회사에서 만들고 있는 비디오 스트리밍 프로그램은 하나의 메인 프로그램이 있고, 1 ~ 25 개의 카메라 영상을 스트리밍 해주는 각각의 스트리밍 프로그램이 있다. 즉, 프로젝트는 하나인데 프로세스는 여러개가 실행되는 구조이고 각각은 자신들만의 로그 파일을 가지고 있어야 했다. 문제는 여기서 발생한다..
사피엔스, 위기인가 기회인가 처음 책 제목을 들었을 땐 오싹한 감정이 들었다. 사피엔스의 멸망이라니.. 우리가 멸망하게 된다는 말을 하려는 건가? 처럼 소행성이 충돌하고, 처럼 외계인이 침공하고, 처럼 핵전쟁이 벌어지는걸까? 아니면 그렇게 자주 논의되고 있는 지구 온난화가 벌써 손 쓸 새도 없게 되어버린걸까? 책에서 말하는 멸망 시나리오에는 내가 우려했던 상황들이 포함되어 있지만 이게 전부가 아니었다. 내가 미처 생각하지도 못했고 심지어 인공지능처럼 인류가 전적으로 의지해야 한다고 느꼈던 분야에서조차 사피엔스의 멸망을 부추길 무언가가 존재했다. 저자인 토비 오드는 사피엔스가 우주에서 멸망할 위험을 ‘존재 위험’ 이라고 부른다. 말 그대로 존재 자체에 위협이 되는 위험이다. 토비는 인류가 우주에 존재하면서 겪게 될 멸망 시나리오를 크..