본문 바로가기

IT_Developers1149

JAVA - 캡슐화(Encapsulation)란? / 메소드를 사용한 캡슐화 예제 캡슐화를 알아보고 실습해보자 안녕하세요. 고코더 입니다. 객체지향에 큰 특징중에 하나가 바로 캡슐화 입니다. 영어로는 Encapsulation 입니다. 봉인하다. 라는 뜻인데요. 중요한 데이터를 보존하고 보호하는 것입니다. 이름에서 느껴지듯 내부의 정보를 최소한으로 외부에 노출하는걸 의미합니다. 즉 내부에서 정의한 필드와 자료구조등에 대한 접근을 차단한다는 뜻입니다. 그리고 이를 메쏘드로 접근해서 사용해야 합니다. - 객체의 필드와 메소드를 하나로 묶고, 실제 구현 내용을 외부에 감츤다. - 외부 객체는 제공하는 필드와 메소드만 이용할 수 있다. - 캡슐화는 외부의 잘못된 사용으로 인해 객체가 침해 당하지 않게 한다. - 노출을 위해 접근 제한자(Access Modifier)를 사용한다. 캡슐화 예제 소.. 2020. 3. 11.
JAVA - 1부터 100까지 더 하는 프로그래밍 실습 1부터 100을 더해 5050을 구하는 실습 안녕하세요. 고코더 입니다. 1부터 100까지 더하는 프로그래밍 문제를 풀어보려고 합니다. 오히려 현업에서 코딩을 오래 하던 분일 수록 갑작스런 기초 문제를 물어보면 당황하는 경우가 많습니다. 처음 본 문제라면 초보분들도 당황하시겠지만요. 그리고 무엇보다 이런 문제를 요즘 물어보는 회사가 많아졌습니다.(귀찮게) 그래서 이런 프로그래밍 문제도 가끔 블로그에서 다뤄 보려고 합니다. 너무나도 쉬우니 눈으로 손으로 한번씩 따라해보시기 바랍니다. 1부터 100까지 합하는 정석 첫번째 방법은 가장 쉬운 방법으로 해당 문제를 클리어 해보겠습니다. 반복문을 이용해서 1부터 100까지 더해주는 방법입니다. 아래 코드를 참조해보시기 바랍니다. 해당 코드는 https://csac.. 2020. 3. 7.
DB - 클러스터드 인덱스, 넌 클러스터드 인덱스 차이점은? cluster index vs nonclustered index 안녕하세요. 고코더 입니다. 면접 질문으로 가장 인기가 많은 질문입니다. "클러스터드 인덱스와 넌 클러스터드 인덱스의 차이점을 설명하시오" 항상 받는 질문이지만 또 시간이 지나면 까먹고는 해서 한번 다시 복습할겸 정리합니다. 개념 자체는 어렵지는 않지만 이상하게 까먹는 내용입니다. 우선 표로 간단하게 차이점을 정리했습니다. 표를 한번 흝어보고 계속 읽어보시기 바랍니다. 클러스터드 인덱스 넌클러스터드 인덱스 배열 행을 물리적으로 재배열 한다. 행을 물리적으로 배열 하지 않는다. 크기 인덱스 페이지 용량이 작다 인덱스페이지 용량이 크다. 선택도 30% 이내 사용 권장 3% 이내 사용 권장 테이블당 사용 갯수 1개 249개 차이점 설명 클러스터드.. 2020. 3. 7.
JAVA - abstract class, interface / 추상클래스, 인터페이스의 차이점은? abstract class VS interface 비슷하지만 다른 안녕하세요. 고코더 입니다. 인터페이스와 추상 클래스는 비슷하지만 완전히 다른 방식으로 작동 합니다. 둘 다 상속 받는다고 하지만 인터페이스는 사실상 구현이라고 표현하는게 더 옳습니다. 추상클래스는 상태나 기능을 공유합니다. 인터페이스는 상태와 기능을 제공하는 역할을 합니다. 추상클래스에서 메소드를 구현하는 것이 가능하고 인터페이스는 형태만 제공하고 구현받은 클래스에서 메소드를 구현 합니다. 조금 헷갈리는 부분이 많으니 다시 한번 정리해보겠습니다. ● 1. 인터페이스(interface)란? 자바에서 인터페이스 만드는는 방법은 클래스 작성법과 거의 유사합니다. 다만 접근제어자를 interface 이어야 합니다. 빈껍데기를 형태만 제공합니다... 2020. 3. 7.
리눅스 - 파일 삭제 명령어 / rm linux 파일 삭제 안녕하세요. 고코더 입니다. 리눅스에서 파일을 삭제하는 방법을 알아봅니다. 이전 시간에서는 폴더 삭제 위주로 배워봤는데요. 이번 시간은 파일 위주로 알아봅니다. ● 1. rm [파일명] : 개별 파일 삭제 하나의 파일을 삭제하는 기본 방법입니다. rm 1.txt ● 2. rm *.[확장자] : 같은 확장자 파일을 모두 삭제 똑같은 확장자의 파일을 삭제하는 방법을 알아봅니다. rm *.txt ● 3. rm * : 모든 파일 삭제 해당 폴더안에 있는 모든 파일을 삭제 합니다. rm * ● 4. rm -ri [파일명] : 파일을 삭제할때 확인하기 파일을 삭제할때 확인을 물어보고 하나씩 봐가면서 삭제할 수 있습니다. 파일 삭제는 매우 위험한 작업이기에 이 방법을 추천합니다. rm -ri *.. 2020. 3. 6.
리눅스 - tar, gzip(tar.gz) 차이점은? linux 압축의 차이 안녕하세요. 고코더 입니다. 리눅스에서 압축 파일을 다루다 보면 두 가지 형식을 자주 보게 됩니다. 바로 확장자 기준으로 tar와 tar.gz 입니다. 윈도우에서 보던 zip, 7z, rar 처럼 압축 포맷중에 하나 입니다. 그런데 이 둘은 명확한 차이가 있습니다. ● 1. tar 방식 리눅스 환경에서 자주 사용하는 방식입니다. 압축파일이라고는 하지만 용량을 압축하지는 않습니다. 덕분에 매우 빠르게 압축이 진행되고 CPU 사용률도 높지가 않습니다. 그래서 tar를 사용하면 순식간에 압축 파일이 생성됩니다. - 압축이라기 보다는 파일을 하나로 합쳐지는 방식 - cpu사용이 적다 - 용량을 줄이지 않는다 ● 2. gzip(tar.gz) 방식 리눅스에서 용량을 줄여서 압축할때 사용하는 .. 2020. 3. 6.
리눅스 - YUM, RPM 차이점은? YUM, RPM 차이를 알아보자 안녕하세요. 고코더 입니다. 리눅스에서 프로그램을 설치하는 대표적인 두 가지 방법이 존재합니다. 바로 오늘 RPM 그리고 YUM으로 나뉩니다. 패키지 인스톨 프로그램이면서 인스톨 프로그램이라 생각하면 쉽습니다. 이 둘은 명확한 차이가 있어 개념을 정리해보려고 합니다. ● 1. RPM (Redhat Package Manager) 이 방법은 리눅스 초기부터 사용해온 설치 방식입니다. 윈도우에서 인스톨 프로그램일 설치하듯 하는 방식이고 확장자는 rpm 입니다. 패키지라고 불리는 이 방식은 필요요소를 전부 다운로드 해야 하는 불편함이 있습니다. - 패키지 인스톨 프로그램 - 인터넷 없이 RPM으로만 설치 가능 - 의존하는 패키지를 모두 직접 설치 해야 한다 ● 2. YUM (Ye.. 2020. 3. 6.
리눅스 - emacs 단축키 정리 emacs 편집기 단축키 안녕하세요. 고코더 입니다. emacs에서 사용 가능한 단축키를 모아보았습니다. 참고 해보세요. 커서이동 Ctrl f, b, n, p 화살표와 동일 Ctrl v, Alt v PgUp, PgDn Ctrl a, Ctrl e Home, End Alt f, b 단어단위로 앞뒤이동 Alt a, e 문단 앞, 뒤로 이동 Alt 파일의 처음, 끝으로 이동 Alt r 커서를 페이지의 처음,끝,가운데로 이동 Ctrl l 커서가 포함된 줄을 화면 처음, 끝, 가운데로 이동 Alt g - Alt g 원하는 줄로 이동 삽입 Ctrl o 빈줄 삽입, 커서 제자리 Ctrl j 빈줄 삽입, 커서 아래로 Ctrl x - i 파일 삽입 Ctrl y kill한 내용 삽입 삭제 Ctrl d 커서에있는 글자삭제 B.. 2020. 3. 6.
리눅스 - nano 텍스트 에디터 실행 명령어 nano 에디터를 실행하는 방법 안녕하세요. 고코더 입니다. nano 편집기는 기본적으로 설치된 vi 편집기 보다 사용하기 수월한 에디터 입니다. 간단한 작업시에 매우 편리합니다. 사용법을 익히기 힘든 vi 보다 유리한 점이 많습니다. ● 1. nano [파일] : 파일 편집 하기 가장 기본적인 파일을 편집하는 명령어 입니다. nano test.txt ● 2. nano -B [파일] : save 이후에 파일 편집하기 기존 파일을 백업 합니다. 중요한 파일이다면 해당 옵션을 사용하세요. nano -B memo.txt ● 3. nano -m [파일] : 마우스를 사용해 편집할 수 있게 한다. 커서 이동을 마우스로 가능 마우스가 있다면 이 옵션을 쓴다면 마우스로 커서 이동이 가능합니다. 매우 편리합니다. na.. 2020. 3. 6.