본문 바로가기

IT

(25)
자바 기초 - 인터페이스, 추상 클래스, 예외처리, Object, String 좋은 기회로 다시한번 자바의 기초를 다질 수 있는 시간을 가져보았습니다. 인터페이스 vs 추상 클래스, 추상 메소드 추상 클래스, 추상 메소드 : - 나를 상속한다면 이 기능은 꼭 구현해라! 라는 "강제"의 기능 인터페이스 : 껍데기만 존재함. - 유사하지만 다른 클래스들을 같은 모양으로 사용하기 위한 기능. - 티비이던 모니터이던 네비게이션이던 모니터에 보려주는 기능, 소리를 키는 기능등은 같은 모양(같은 형식의 인풋, 같은 형식의 아웃풋)으로 구현하기 위해 사용한다. - 다중 상속이 가능 - 인터페이스의 선언한 것 들은 상수로 선언된다. (static) - defalt 메소드 : 나중에 생긴 기능(자바 v8). 인터페이스 메소드들은 무조건 자손들이 구현을 해야 하므로 나중에 인터페이스에 기능 추가하고..
한국거래소 차세대는 왜 하는가? - Exture 3.0 #한국거래소 #KRX #exture3.0 한국거래소 차세대 시스템이 곧 오픈합니다. 이전에는 Exture plus라고 부르더니 이번에는 Exture 3.0이네요. 그냥 처음부터 숫자로 네이밍하면 좋았을 걸 꼭 한국 공공기관(거래소는 공공기관은 아니지만)은 플러스 넥스트 비욘드 이런거 넣더라고요. 참 나이들어보이는 네이밍 센스입니다. 그래도 우리나라에 하나밖에 없는 증권거래기관이 차세대를 한다기에 분석을 좀 해보았습니다. 첫 인상은 그냥 “개발자가 다했네.”입니다. 결국 주요 내용은 시스템과 네트워크 업그레이드를 통한 성능 개선 + 매칭엔진 스트럭쳐 개선(멀티엔진)입니다. 개인 거래자에게 좋은 건 딱히 없음. 그나마 의미 있어보이는 게 멀티 매매체결입니다. 2021년에 청약(IPO)시장이 흥하면서 큰 종목..
리눅스 프로그래밍 - 커널 소스 분석하기 ( ftp 서버 구현, 쓰래드 다루기 ) 0. 서론 쓰레드는 전역변수를 공유한다. 고로 전역변수가 있는 함수를 통해 버퍼링을 하면 안된다. -> 멀티 프로세스를 활용. 서버는 명령어를 분석해야 하기 때문에 readline을 사용-> \n 문자열을 받아야 하기 때문. (line 단위 read : readline) length 단위 read : readn ( 커널은 자신이 정해둔 기본 단위 만큼 전송하기 때문에(헤더에 있는 값이 기준인 것 처럼 보임-확인필요), 정확한 길이만큼 데이터를 받고 사용하려면 길이만큼 작동하는 함수 - readn, writen이 필요 ) 클라이언트는 데이터를 받아야 하기 때문에 readn을 사용 1. ftp server 구현 1. ls\n -> readline() 2. readn() [ftp_server] #include..
리눅스 프로그래밍 - 커널 소스 분석 ( 소켓, 서버 ) 1. socket int socket(int family, int type, int protocol); family : 인터넷 프로토콜 체계 명명 type : soket type protocol : TCP, UPD 이런 것 중 어느 것을 사용 할 지 socket 사용 코드 #include #include #include #include #include #include #include #include void err_quit ( char *msg) { printf ("socket error\n"); printf ("errno=%d, %s\n",errno, strerror(errno) ); perror (msg); exit (0); } int Socket(int domain, int type, int pro..
리눅스 프로그래밍 - 커널 소스 분석 ( 네트워크 기초 ) 오랜만에 초심으로 돌아가 리눅스 프로그램을 까보았습니다. 사실 선생님 한분이 도와주셨어요. 네트워크 전공 이신지 네트워크 위주로 시작했습니다. 1. 리눅스 커널 소스 가져오기 The Linux Kernel Archives kernel.org $ wget으로 웹에서 데이터 가져옴 2. 커널 소스 태깅하기 $ make tags 3. iphdr : ip 프로토콜 struct iphdr { __u8 ihl:4, // 길이 : 5*4 byte version:4; __u8 tos; // type of service - 현재 미사용 __be16 tot_len; // byte 단위, data length = tot_len -ihl*4 __be16 id; // 패킷을 나눴을 때 동일한 패킷임을 확인하는 Id __be16..
[PL/SQL] 에러 해결 : pls-00905 object is invalid PL/SQL을 다루다가 에러가 발생하였습니다. 에러 날 때마다 정리 좀 해두면 좀 편할까 싶어 정리해둡니다. ===== PLS-00905 오브젝트가 부당합니다. ===== 찾아보니 컴파일 에러가 발생한, 그러니깐 이상한 Stored Procedure를 계속 컴파일 실행하다 발생하는 에러 같다. 내 상황 : Package 컴파일 실행 해결 : DEF부터 하나씩 에러를 잡아주기 방법 1. sqlplus 로 오라클 접근 2. DEF 컴파일 @Package_name_DEF.sql / 3. 에러 확인 show errors 4. 에러 수정 5. 재컴파일 show errors 라는 게 가능 하다니 놀라운 발견을 하였다....
[Oracle] PARTITION BY란 무엇인가? (분석함수) 글의 서론 회사 과장님께서 PARTITION BY라는 오라클 함수를 사용하시는 것 보았다. 멋있어 보였다. 그래서 좀 나도 써볼까? 라는 마음에 Search해서 정리한 내용을 좀 적어봅니다. DB는 해도해도 어렵네요. PARTITION BY는 분석함수와 함께 사용됩니다. 분석함수 정의 분석함수란 테이블에 있는 로우(컬럼)에 대해 특정 그룹별로 집계값을 산출할 때 사용 되는 함수들이다. 분석함수 예시 SUM, AVR, MAX, MIN, COUNT 보니깐 GROUP BY로 묶여서 사용되는 집계 값을 만드는 함수들이 분석함수인가 봅니다. 그렇다면 PARTITION BY란? GROUP BY의 대체제라고 보여집니다. SELECT JOB, AVR(SALARY) FROM FIRM_TABLE WHERE AGE > 35..
[Oracle] 오라클의 Synonym(시노님)이란? 오라클의 synonym이란? 그냥 한국어로 번역하면 동의어라는 뜻인데...... SYNONYM 쉽게 말해서 ALIAS 같이 "이름을 줄여주거나 변경해주는 역할을 한다."고 생각하시면 됩니다. 즉, 시노님(Synonym)은 테이블의 이름을 설정해 주는것입니다. 실제 이름의 동의어를 만들어 주는 거죠. 단, 이 Synonym은 일회성이 아닙니다. 계속 사용할 수 있죠. 보통 다른 유저의 객체(테이블, 뷰, 프로시저, 함수, 패키지, 시퀀스 등)를 참조할 때 많이 사용을 합니다. 실제로 SYNONYM을 이용하면 다른 유저의 오라클 객체를 사용할 때 해당 유저의 이름과 객체의 실제 이름을 감춰집니다. 이렇게 두 데이터를 감춤으로써 데이터베이스의 보안이 개선됩니다. 시노님에는 PUBLIC과 PRIVATE타입이 있..