본문 바로가기

[개발자 리뷰] 모던 C 오랜만에 인사드리는데요~ 개발자 리뷰어로서 요번에 소개해드릴 책은 바로 모던 C입니다! 이 책은 카테고리가 크게 4단계로 되어있는데요, 기본적인 C에 대한 내용을 다루는 '만남' 그리고 다음 레벨인 '친숙', '이해', '숙달' 순으로 이어집니다. 첫 카테고리 파트인 '만남'에서는 주로 C언어의 기본적인 문법과 프로그래밍 구조에 대하여 설명해줍니다. 그리고 #include, int, void, for, return과 같은 특수어에 대한 설명과 더불어 컴파일러 관점에서의 식별자 해석 방식도 곁들여 줍니다. 그리고 다음 레벨인 '친숙'에서는 좀 더 들어가 C언어의 데이터 타입, 제어문 함수 사용법에 대한 설명이 들어갑니다. 흔히 알고 있는 기본적인 데이터 타입 외에도 파생 타입들에 대한 상세한 설명들과 더불..
[오라클 함수] 정규식 함수/정규 표현식(Regular Expression) 정규식 : 데이터의 간단한 및 복잡한 패턴을 검색하고 조작할 수 있는 식 *메타문자(검색 알고리즘을 지정하는 연산자)와 리터럴(검색중인 문자)로 구성됨. Function Explanation REGEXP_LIKE 일반적인 LIKE보다 복잡한 패턴의 데이터 검색 가능한 함수 REGEXP_REPLACE 일반적인 REPLACE보다 복잡한 데이터 교체 가능한 함수 REGEXP_INSTR 일반적인 INSTR보다 복잡한 데이터 찾기 가능한 함수 REGEXP_SUBSTR 정규식 패턴을 검색하고 일치부분 출력해주는 함수 REGEXP_COUNT 특정 단어가 몇번 출력되는지 출력해주는 함수 ex. 정규식을 통한 한글, 영문, 특수문자 및 숫자 제거 방법 1. 한글 제거 ex. SELECT REGEXP_REPLACE('ㄱㄴ..
[오라클 함수] EXISTS, NOT EXISTS EXISTS : 서브 쿼리 조건에 만족하는 모든 레코드를 출력해준다. ==> 서브 쿼리 조건에 해당하는 결과 출력 ex. SELECT * FROM TABLE A WHERE EXISTS (SELECT * FROM TABLE B WHERE A.CUSNO = B.CUSNO); NOT EXISTS : 서브 쿼리 조건에 만족하는 레코드를 제외하고 출력해준다. ==> 서브 쿼리 조건을 빼고 결과 출력 ex. SELECT * FROM TABLE A WHERE NOT EXISTS (SELECT * FROM TABLE B WHERE A.CUSNO = B.CUSNO); *IN 과 EXISTS의 차이점 IN : 실제 존재하는 데이터들의 모든 값을 확인 EXISTS : 해당 row가 존재하는지만 확인하고 값들을 일일히 비교하..
[오라클 함수] TRIM, LTRIM, RTRIM, LPAD, RPAD TRIM : 문자의 앞 뒤 공백 제거 ex. SELECT TRIM(' HELLO ') FROM DUAL; --> 'HELLO' LTRIM : 문자의 앞 공백 제거 ex. SELECT LTRIM(' HELLO ') FROM DUAL; --> 'HELLO ' RTRIM : 문자의 뒤 공백 제거 ex. SELECT TRIM(' HELLO ') FROM DUAL; --> ' HELLO' LPAD : 지정한 길이 만큼 왼쪽부터 특정 문자로 채워 준다. ex. SELECT LPAD(CUSNO,5,'*') FROM CUSTOMER; --> **350 RPAD : 지정한 길이 만큼 오른쪽부터 특정 문자로 채워 준다. ex. SELECT RPAD(CUSNO,5,'*') FROM CUSTOMER; --> 350**
[오라클 함수] LAG, LEAG LAG : 필드에 따른 정렬 이후, 이전 row값을 가져오고 싶을 때 유용하게 사용되는 함수 사용 방법 : LAG(expr, offset, default) OVER (ORDER BY 필드) *expr : 다양한 값 설정 가능 (필드값, sum, max, min..) *offset : 몇번째 이전 row를 가져올지 정의(생략시, 1이 정의됨) *default : 이전 row값이 없는 경우 리턴되는 값(생략시, null이 리턴됨) LEAG : 필드에 따른 정렬 이후, 다음 row값을 가져오고 싶을 때 유용하게 사용되는 함수 사용 방법 : LAG(expr, offset, default) OVER (ORDER BY 필드) *expr : 다양한 값 설정 가능 (필드값, sum, max, min..) *offset..
[개발자 리뷰] 마이크로 서비스 패턴 오늘 소개해드릴 책은 '마이크로 서비스 패턴' 입니다 기존의 어플리케이션의 구조는 아키텍처의 관점에서 모놀로식(monolith) 패턴을 가지고 있는 경우가 많았는데요, 한마디로 말해 되는대로 서비스 아키텍처를 구성했다는 말입니다. 물론, 예전처럼 서비스가 복잡하지 않았을 때에는 개발이 간단하고 테스트, 배포가 간단하다는 장점을 가지고 있었지만 시간이 지남에 따라 어플리케이션의 크기가 커지고 서비스가 복잡해지면서 그간 가지고 있던 장점들이 사라지고 개발과 테스트, 배포가 오히려 힘들어진 단점들만이 남게 되었습니다. 따라서 이에 대한 해결책으로 마이크로 서비스 아키텍처가 등장하게 됩니다. 책에서 설명하는 마이크로서비스 아키텍처의 장점들은 다음과 같습니다. 1. 어플리케이션을 모듈별로 나누어 관리할 수 있다...
형상 관리(Configuration Management)와 버전 관리(Version Management) 1. 버전 관리(Version Management) : 소스 코드의 변경 사항을 버전으로 관리. 변경 관리보다 체계적인 관리가 가능하다. Ex. GIT, SVN 2. 형상 관리(Configuration Management) : 소스 코드뿐만 아니라 프로젝트의 진행사항, 빌드, 릴리즈, 퍼블리싱 까지도 관리 가능한 통합 시스템이라 할 수 있다. * 변경관리 : 단순히 소스 코드의 변경 사항을 관리 * 포함관계 : 변경관리 < 버전관리 < 형상관리
[IT Product Review] AirPods Pro(에어팟 프로) 리뷰 새롭게 글을 올리게 된 IT 제품 리뷰 페이지입니다. 처음으로 소개드릴 제품은 요번에 새롭게 구매하게 된 AirPods Pro입니다. 나온지 시간이 좀 흐른 지금까지도 Noise Canceling기능을 갖춘 AirPods Pro에 대한 칭찬이 끊이질 않고 있는데요~ 원래 AirPods을 쓰고 있었던지라 큰 기대는 하지 않고 구매하였는데.. 카페에서 AirPods Pro를 끼고 음악을 들으며 글을 쓰고 있는 지금조차 Noise Canceling 기술이 정말 대단하다는걸 느끼고 있습니다. 카페가 시끌벅적한데.. 에어팟을 끼고 Noise Canceling Mode를 키는 순간 카페에 혼자 남겨진듯한 느낌이 듭니다. 물론 일반(Normal) 모드로도 자유롭게 전환시킬 수 있는데요~ 일반 모드에서는 일반적인 커널..