전체 글(194)
-
Dinstinct와 Group by의 차이
Distinct와 Group by의 차이 Distinct는 주로 Unique한 컬럼이나 레코드를 조회하는 경우에 사용됩니다. Group by는 주로 데이터를 그룹핑해서 결과를 가져오는 경우에 사용됩니다. 두 작업은 조금만 생각해보면 동일한 형태의 작업입니다. 일부 작업의 경우 Distinct로 Group by로도 처리할 수 있는 쿼리들이 있습니다. select distinct(fd1) from tab; => select fd1 from tab group by fd1위의 예시처럼 두 개의 쿼리는 바꿔서 실행할 수 있습니다. 그리고 이런 형태의 Distinct는 내부적으로 Group by와 동일한 코드를 사용합니다. 하지만 Distint는 정렬된 결과를 반환하지 않지만, Group by는 정렬된 결과를 보내..
2021.05.03 -
Kerberos
Kerberos란 Kerberos는 티켓 기반의 컴퓨터 네트워크 인증 프로토콜입니다. 보안이 보장되지 않은 네트워크 환경에서 클라이언트와 서버가 서로의 신뢰성을 확보하기위해 사용됩니다. Kerberos는 클라이언트 - 서버이외에 제 3의 컴퓨터가 클라이언트의 사용자를 인증합니다. 인증을 통해 서버는 클라이언트의 사용자가 올바른 사용자인지 확인하게 되고 클라이언트 - 서버간 통신이 가능해집니다. Kerberos의 장점 기밀성과 무결성 보장 재생공격 예방 이기종간 서비스 인증 가능 대칭키를 사용하여 도청으로부터 보호 Kerberos의 단점 사용자 몰림으로 인해 과도한 티켓 생성 시 서버 부하가 발생할 수 있습니다. AS(Authentication Server) 다운 시 인증 과정이 중단됩니다. 각 서버의 시..
2021.04.21 -
API Gateway
API Gateway의 개념 API Gateway는 서비스로 전달되는 모든 API 요청의 관문 역할을 하는 서버 시스템의 아키텍처를 내부로 숨기고 외부의 요청에 대한 응답만을 적절한 형태로 응답합니다. 즉, 클라이언트는 내부 구조가 어떠한 아키텍쳐인지 알 필요 없이 서로 약속한 형태의 API 요청만을 서버로 보냅니다. API Gateway의 장점 클라이언트의 요청을 일괄적으로 처리 전체 시스템의 부하를 분산 시키는 로드 밸런서의 역할 동일한 요청에 대한 불필요한 반복 작업을 줄일 수 있는 캐싱 시스템 상을 오고가는 요청과 응답에 대한 모니터링 시스템 내부에 아키텍처를 숨길 수 있음 API Gateway의 주요 기능 인증 및 인가 마이크로 서비스 아키텍처에서 각각의 서비스에 API 호출에 대한 인증 및 인..
2021.04.20 -
Gradle
Gradle의 개념 Gradle이란 Groovy를 기반으로 한 빌드 도구입니다. Ant와 Maven과 같은 이전 세대 빌드 도구의 단점을 보완하고 장점을 취합하여 만든 오픈소스로 공개된 빌드 도구 입니다. Ant XML 기반으로 빌드 스크립트를 작성 자유롭게 빌드 단위를 지정 간단하고 사용하기 쉬움 유연하지만 프로젝트가 방대해지는 경우 스크립트 관리나 빌드 과정이 복잡해짐 생명주기를 갖지 않아 각각의 결과물에 대한 의존 관계등을 정의해야함 Maven https://kchanguk.tistory.com/10?category=889165 Gradle의 특징 Gradle은 의존성 관리를 위한 다양한 방법을 제공하고 빌드 스크립트를 XML 언어가 아닌 JVM에서 동작하는 스크립트 언어 Groovy 기반의 DSL..
2021.04.14 -
함수형 프로그래밍
함수형 프로그래밍이란 함수형 프로그래밍의 개념 함수형 프로그래밍은 순수함수를 조합하고 공유 상태, 변경 가능한 데이터 및 부작용을 피하여 소프트웨어를 만드는 프로세스입니다. 함수형 프로그래밍은 명령형이 아닌 선언형이며 애플리케이션의 상태는 순수 함수를 통해 전달됩니다. 애플리케이션의 상태가 일반적으로 공유되고 객체의 메서드와 함께 배치되는 객체 지향 프로그래밍과는 대조됩니다. 함수형 프로그래밍의 특징 순수 함수 순수함수란 같은 입력이 주어지면 항상 같은 출력을 반환하고 부작용이 없는 함수를 의미합니다. 그리고 프로그램의 의미를 변경하지 않고 결과 값으로 함수 호출을 대체할 수 있습니다. 합성 함수 합성 함수는 새로운 함수를 만들거나 계산하기 위해 둘 이상의 함수를 조합하는 과정입니다. 불변성 불변성이란 ..
2021.04.13 -
GSLB
GSLB란 GSLB의 개념 GSLB(Global Service Load Balancing)란 DNS 기반의 로드 밸런싱 서비스를 말합니다. GSLB의 주요 기술 Health Check 등록된 호스트 들에 대해 주기적으로 Health Check를 수행합니다. 호스트가 Check되지 않을 경우 DNS 응답에서 해당 호스트를 제거합니다. 실패한 호스트로의 접근을 막아 서버의 가용성을 높일 수 있습니다. TTL DNS에서 권한을 가진 네임서버는 특정 레코드에 대해서 TTL을 설정할 수 있습니다. 캐시 네임 서버는 TTL 시간 동안 캐시에 저장하고, Client로부터 요청이 오면 캐시에 저장된 값을 반환합니다. TTL 값이 너무 길면 GSLB의 상태 정보가 제때 동기화되지 못 합니다. TTL 값이 너무 짧으면 네..
2021.04.09