전체 글
-
CH05 제네릭, ITEM 26 로타입은 사용하지 말라카테고리 없음 2022. 10. 2. 08:49
제네릭 타입 (Generic Type) 제네릭 타입은 타입을 파라미터로 가지는 클래스 또는 인터페이스를 말한다. public class 클래스명 { ... } public interface 인터페이스명 { ... } 컴파일 시 강한 타입 체크를 할 수 있다. 자바 컴파일러는 잘못 사용된 타입으로 인해 발생하는 문제점을 제거하기 위해 제네릭 코드에 강한 타입 체크를 한다. 런타임시 타입 에러보다는 컴파일 시점에 미리 타입을 체크하여 에러를 사전에 방지하는 것이 좋다. 타입 변환(castring)을 제거한다. 비제네릭 코드는 불필요한 타입 변환으로 프로그램 성능에 악영향을 미친다. 로 타입 (Row Type) 로 타입이란 제네릭 타입에서 타입 매개변수를 전혀 사용하지 않은 경우를 말한다. ex) List →..
-
[DB] 오라클 시노님(Oracle Synonym)💻 IT Study/Knowledge 2022. 6. 1. 17:45
지금 실무에서 운영 DB계정으로 2개(계정A, 계정B)를 사용한다. 그 이유를 여쭤보니 플젝 상황이 바빠서 관리와 보안의 이유라고만 들었다. 기회가 된다면 다시 한번 물어봐야겠다..! 어쨌든, AS-IS에서 사용하던 VIEW를 TO-BE에 만들어주셨는데 테이블 또는 뷰가 존재하지 않다는 에러가 발생했다. 계정 A에서 조회할 경우, 해당 뷰가 조회 가능한데 계정 B에서는 조회되지 않아 당황스러웠다. 계정 B에서는 AS-IS 계정에 접근 불가하여 VIEW를 생성하지 못했다 .. 알고보니 계정 A에서 VIEW를 생성하고 계정 B에게 VIEW의 시노님을 줘야 한다고 하셨다. 운영서버는 계정 B를 바라보고 있어서 계정 A에서만 VIEW 생성을 할 경우에는 접근할 수 없었다. 시노님을 얼른 메모해두고 공부한 뒤 담..
-
[JAVA] 리플렉션(Reflection)💻 IT Study/Knowledge 2022. 5. 25. 23:00
GoF 디자인 패턴에 대한 강의를 듣다가 강사분께서 흘러지나가듯이 리플렉션을 언급하셨다. 싱글톤 패턴을 리플렉션으로 깨뜨릴 수 있다는 것이었다. 코드를 보고 리플렉션을 대강 이해할 수는 있었지만 더 자세히 알아보고 싶었다. 나중에 디자인 패턴에 대해 따로 정리할 예정이다 :-) 리플렉션(Reflection)은 구체적인 클래스 타입을 알지 못해도 그 클래스의 메소드, 타입, 변수들을 접근할 수 있도록 해주는 자바 API(Application Programming Interface)이다. 자바는 컴파일 시점에 타입을 결정하는 정적언어이다. 그러나 동적으로 클래스를 사용할 때 리플렉션이 사용된다. 코드를 작성할 시점에는 어떤 타입의 클래스를 사용할 지 모르는 경우가 있다. 이런 경우 실행시점인 런타임에 실행되..
-
[네트워크] DMZ(DeMilitarized Zone)💻 IT Study/Knowledge 2022. 5. 24. 23:58
지금하고 있는 프로젝트에서 총 8개의 서버를 관리하고 있다. 내부 Web/WAS 서버, 외부 Web/WAS 서버로 각 서버를 2개씩 가진다. 외부 Web 서버만 따로 관리하고 있기에 여쭤봤더니 외부 Web 서버만 DMZ 밖에 있기 때문이라고 하셨다. 그 때는 알아듣는 척하며 몰래 메모해두었다. DMZ 알아보기 위해 이번 포스팅 주제로 삼았다..! DMZ(DeMilitarized Zone)은 외부 네트워크와 내부 네트워크 사이에서 외부 네트워크 서비스를 제공하면서 내부 네트워크를 보호하는 서브넷, 즉 외부에 오픈된 서버영역을 말한다. DMZ의 앞뒤로 방화벽이 설치된다. 하나는 내부 네트워크와 다른 하나는 외부 네트워크와 연결된다. 내/외부 네트워크는 DMZ에 접속할 수 있지만, DMZ내의 컴퓨터는 오직 외..
-
[용어정리] SSH(Secure Shell)💻 IT Study/Knowledge 2022. 5. 23. 00:20
실무에서 하는 프로젝트에서 운영서버를 관리할 때 SSH에 접속해서 관리하고 있다. 이클립스에서 빌드 후 빌드한 파일을 SSH에 압축을 풀고 운영서버 로그를 확인하는 등 운영서버와 관련한 일을 한다. 매일 SSH에 접속하여 일을 하는데도 개념과 원리에 대해 정확히 알고있지 않아 포스팅을 하게 되었다 ..! 여기서는 간략하게 무엇인지 정도를 알아보려고 한다. 시큐어 셀(Secure Shell)은 네트워크 프로토콜 중 하나로 컴퓨터와 다른 컴퓨터가 인터넷과 같은 Public Network를 통해 서로 통신을 할 때 보안적으로 안전하게 통신을 하기위해 사용하는 프로토콜이다. 대표적으로 데이터를 전송하거나 원격 제어를 할 때 사용한다. 데이터 전송의 예로는 원격 저장소인 GitHub이 있다. 소스 코드를 원격 저..
-
JVM 동작과정💻 IT Study/Knowledge 2022. 5. 22. 20:27
자바의 동작과정 대략적으로 알아보기 1. 개발자가 자바 소스 코드 작성한다. 2. Java Compiler가 자바 Source File(*.java)을 컴파일하여 Byte File(*.class)로 생성한다. 3. 컴파일된 Byte File(*.class)을 JVM의 Class Loader에게 전달한다. 4. Class Loader는 동적 로딩을 통해 필요한 클래스들을 로딩 및 링크하여 Run-time Data Area에 업로드한다. 5. Execution Engine에서 JVM 메모리에 올라온 Byte 코드를 명령어 단위로 하나씩 해석하여 Binary Code를 생성한다. 6. Binary Code는 Run-time Data Area에 배치되어 실질적 수행이 이루어진다. Class Loader JVM이..
-
리눅스 명령어 모음zip💻 IT Study/Knowledge 2022. 4. 20. 22:28
회사에서 운영서버를 올리기 위한 빌드업 작업을 하다보니 리눅스 명령어를 정리해야지 하는 생각이 들었다. 대학교 시절 대강 배웠던 걸로는 지금 다 잊어버렸다... 다시 정리해서 복습할 것 ! :-) ls(list) 디렉터리 목록 확인 cd(change directory) 현재 위치 이동 pwd(print working directory) 현재 작업중인 디렉토리 확인 cp(copy) 파일 혹은 디렉토리 복사. 디렉토리 복사 시 -r 옵션을 줘야 함 mv(move) 파일 혹은 디렉토리 이동 or 이름 변경. 디렉토리 이름변경이 이동으로 이뤄짐. mkdir(make directory) 디렉토리 생성 rm(remove) 파일이나 디렉토리 삭제. 디렉토리 삭제 시 r옵션을 줘야 함. cat(concatenate) ..
-
[용어정리] 언어 및 코드💻 IT Study/Knowledge 2022. 4. 12. 20:46
※ 위 이미지는 이해한 내용을 바탕으로 그려낸 도표입니다. 잘못된 부분이 있으면 알려주세요 :-) 저급언어 vs 고급언어 고급언어 (High-Level Language) : 사람이 알기 쉽도록 씌어진 언어 - 사용자 위주의 언어 - 가독성이 높으며 다루기 간단하다. - 컴파일러나 인터프리터에 의해 저급언어로 번역되어 실행된다. ex) FORTRAN, COBOL, Java, C++ … 저급언어 (Low-Level Language) : 컴퓨터 내부에서 바로 처리 가능한 언어 - 하드웨어 위주의 언어 - 프로그램 속도가 빠르다. ex) 기계어. 어셈블리어 저급언어 - 기계어 vs 어셈블리어 1) 기계어(Machine Language) : 0과 1로 구성된 바이너리 코드 - 기계어가 이진코드로 이루어졌을 뿐. ..