본문 바로가기

전체 글221

[Java] 제네릭은 처음부터 있었던 문법이 아니다(feat. raw type, type eraser) ㅇraw type: 다이아몬드()를 사용하는 일반적인 제네릭 방식과는 다르게, 다이아몬드를 사용하지 않는 방식내부의 타입 매개변수가 Object로 사용된다고 이해하면 된다GenericBox integerBox = new GenericBox();자바의 제네릭은 자바가 처음 등장할 때부터 있었던 것이 아니라, Java 5 이후에 등장했기 때문에 제네릭이 없던 시절의 과거 코드와 호환이 필요했다. 그래서 어쩔 수 없이 이런 raw type을 지원하는 것이다. 따라서 우리가 코드를 작성할 때는 raw type을 사용할 이유가 없다.※ raw type은 Java에만 있는 독특한 개념이다   type eraser도 마찬가지로 이해하면 된다ㅇtype eraser: 컴파일 시점에 제네릭 타입 정보를 제거하고 raw t.. 2024. 9. 16.
[OOP] 제네릭 명명 관례 일반적으로 대문자를 사용하고 용도에 맞는 단어의 첫 글자를 사용하는 관례를 따른다  E - Element K - KeyN - NumberT - TypeV - ValueS, U, V etc. - 2nd, 3rd, 4th types      참고 및 출처: 김영한의 실전 자바 - 중급 2편https://www.inflearn.com/course/%EA%B9%80%EC%98%81%ED%95%9C%EC%9D%98-%EC%8B%A4%EC%A0%84-%EC%9E%90%EB%B0%94-%EC%A4%91%EA%B8%89-2 2024. 9. 16.
[Java API] 예외계층구조 핵심 그림 "예외도 객체다"     참고 및 출처: 김영한의 실전 자바 - 중급 1편https://www.inflearn.com/course/%EA%B9%80%EC%98%81%ED%95%9C%EC%9D%98-%EC%8B%A4%EC%A0%84-%EC%9E%90%EB%B0%94-%EC%A4%91%EA%B8%89-1 2024. 9. 16.
[OOP] 실무 예외처리 수칙 트렌드 2가지 1. 처리할 수 없는 예외(시스템 오류)는 오류 메시지를 보여준다DB 접속 실패, 애플리케이션 연결 오류 같은 경우는, 고객에게 "현재 시스템에 문제가 있습니다." 라는 오류 메시지를 보여주고, 만약 웹이라면 오류 페이지를 보여주면 된다. 그리고 내부 개발자가 문제 상황을 빠르게 인지할 수 있도록, 오류에 대한 로그를 남겨둔다.    2. 현대의 애플리케이션 개발에서는 체크 예외를 거의 사용하지 않는다(= 언체크 예외만을 사용한다)현대에서는 점점 처리할 수 없는 예외가 많아지고, 또 프로그램이 복잡해지면서 체크 예외를 사용하는 것이 많이 부담스러워졌다. 따라서 언체크 예외만을 사용하며 한꺼번에 "공통 예외처리"를 한다. 해결할 수 있는 것들은 해결하고, 해결할 수 없는 것들은 공통으로 일관성있게 처리한다.. 2024. 9. 11.
[UNIX/Linux] ep1) 디렉터리 다루기 리눅스에서는 파일을 일반 파일과 특수 파일, 디렉터리 세 가지로 구분한다디렉터리는 해당 디렉터리에 속한 파일을 관리하는 특별한 파일이다 1. 일반 파일(-): 우리가 흔히 아는 데이터를 저장하는 파일e.g. 텍스트 파일, 실행 파일, 프로그램 파일, 라이브러리, 이미지 파일 등과 같은 사용자가 읽거나 수정할 수 있는 파일들  2. 특수 파일: 하드웨어 장치나 프로세스와의 인터페이스를 제공하는 파일 (운영체제와 하드웨어 간의 인터페이스 역할)하드웨어 장치(예: 키보드, 마우스, 디스크)와 상호작용할 수 있도록 시스템 자원에 대한 접근을 제공한다리눅스에서는 주로 /dev 디렉터리에서 특수 파일들을 확인할 수 있다블록 특수 파일(b): 디스크와 같은 장치에서 데이터를 블록 단위로 처리문자 특수 파일(c): 키.. 2024. 9. 11.
[Java] 중첩 클래스에 대한 고찰 중첩(Nested): 어떤 다른 것이 내부에 위치하거나 포함되는 구조적인 관계 (나의 안에 있지만 내 것이 아닌 것)내부(Inner): 나의 내부에 있는 나를 구성하는 요소여기서 의미하는 중첩(Nested)과 내부(Inner)를 분류하는 핵심은 바로 바깥 클래스 입장에서 볼 때 안에 있는 클래스가 나의 인스턴스에 소속이 되는가 되지 않는가의 차이이다**정리하면 내부 클래스들은 바깥 클래스의 인스턴스에 소속된다. 정적 중첩 클래스는 그렇지 않다.**  [용어 정리]중첩 클래스: 정적 중첩 클래스 + 내부 클래스 종류 모두 포함정적 중첩 클래스: 정적 중첩 클래스를 말함내부 클래스: 내부 클래스, 지역 클래스, 익명 클래스 3가지 종류를 포함해서 말함  + 지역 변수 캡처지역 클래스를 통해 생성한 인스턴스가.. 2024. 9. 9.
오픈소스 터미널 에뮬레이터(PuTTY, Termius, MobaXterm) ㅁ PuTTY: 오픈소스 터미널 에뮬레이터SSH, Telnet, Rlogin과 같은 원격 프로토콜을 지원한다. macOS는 기본 터미널로 SSH접속이 가능하지만, Windows 같은 경우는 불가능해서 Windows에서 SSH 접속을 위해 많이 사용한다. 그래서 네트워크 관리자, 개발자, 시스템 관리자 등이 원격 서버에 접속하고 관리하는 데 자주 사용된다.※ Windows 10부터는 cmd로도 SSH접속이 가능하다고 한다 근데 그렇다고 해서 맥북이 PuTTY를 무조건 설치 안 해도 되는 것이 아니다. PuTTY와 같은 툴을 사용하면 얻을 수 있는 이점이 많다.PuTTY와 같은 툴 설치의 이점:세션 관리:PuTTY는 다양한 세션 프로파일을 저장하고 관리할 수 있는 기능을 제공합니다. 이를 통해 여러 서버에 .. 2024. 9. 4.
[UNIX/Linux] ep0) 시스템 프로그래밍의 이해 UNIX, 그야말로 운영체제계의 goat모든 운영체제가 UNIX에 영향을 받았다고 해도 과언이 아니다. 심지어 Windows 까지도 분명 UNIX에 영향을 받은 부분이 무조건 있을 것이다. (Windows는 오픈소스가 아니라서 자기네들의 코드를 공개하지 않는다) 서버의 운영체제는 요즘 90%가 다 Linux를 쓴다. 그래서 금융권에서는 UNIX를 Linux로 대체하는 U2L(UNIX to Linux)이 확산되고 있다. ※ 리눅스 시스템에서 라이브러리는 보통 /usr/lib 에 위치한다정적 라이브러리: 프로그램을 컴파일할 때 같이 적재되어 실행 파일을 구성한다공유 라이브러리: 실행 파일에 포함되지 않아 메모리를 효율적으로 사용하기 위해 사용한다  [파일시스템 - 파일과 디렉터리]절대 경로(absolute .. 2024. 9. 4.
썸머타임과 타임존 계산 ㅇ썸머 타임(일광 절약 시간: DST, Daylight Saving Time)보통 3월에서 10월은 태양이 일찍 뜨고, 나머지는 태양이 상대적으로 늦게 뜬다. 시간도 여기에 맞추어 1시간 앞당기거나 늦추는 제도를 썸머 타임이라 한다.  ㅇ타임존 계산세계는 다양한 타임존으로 나뉘어져 있으며, 각 타임존은 UTC(협정 세계시)로부터의 시간 차이로 정의된다.UTC (Coordinated Universal Time, 협정 세계시): 원자 시계를 사용하여 측정한 국제적으로 합의된 시간 체계. 지구의 자전 속도가 변화하는 것을 고려하여 윤초를 추가하거나 빼는 방식으로 시간을 조정함으로써, 보다 정확한 시간을 유지한다. 따라서 정밀한 시간 측정과 국제적인 표준에 관해서는 UTC가 선호된다.기준 시간: UTC+0전 세.. 2024. 8. 28.