목록Etc/CS Term (10)
우노
들어가기 앞서, Polling과 Pulling은 모두 클라이언트가 서버로부터 데이터를 가져오는 방식을 나타내지만, 두 용어는 약간의 차이가 있습니다. Polling Polling은 클라이언트가 주기적으로 서버에 요청을 보내어 새로운 데이터나 업데이트가 있는지 확인하는 방식입니다. 클라이언트는 일정한 시간 간격으로 서버에 요청을 보내며, 서버는 해당 시점에 가용한 데이터를 응답으로 전송합니다. 새로운 데이터가 없더라도 클라이언트는 계속해서 요청을 보내므로, 불필요한 통신 오버헤드가 발생할 수 있습니다. 실시간성이 중요하지 않은 경우나 업데이트 빈도가 낮은 경우에 적합합니다. Pulling Pulling은 클라이언트가 필요할 때마다 서버에 요청을 보내어 데이터를 가져오는 방식입니다. 클라이언트는 데이터가 필..
오버로딩(Overloading)이란? 같은 이름을 가지는 메서드가 있더라도, 매개변수의 타입 또는 개수를 달리하여, 여러개의 메서드를 정의할 수 있는 기술입니다. 간단한 오버로딩 예제 코드 매개변수 개수를 다르게 정의할 경우 public int overloadTest(){ return 1; } public int overloadTest(String test){ return 1; } 매개변수 타입을 다르게 정의할 경우 public int overloadTest(String test){ return 1; } public int overloadTest(int test){ return 1; } 리턴 타입을 다르게 정의할 경우 public String overloadTest(String test){ return ..
들어가기 앞서, Stateful과 Stateless는, 클라이언트와 서버간의 네트워크 통신이 어떻게 이루어지는지에 대한 개념입니다. 세션 상태 및 세션 정보란? Stateful 과 Stateless 의 개념을 이해하기 위해선, 세션 상태와 세션 정보에 대한 개념을 알아야합니다. 세션 상태 클라이언트와 서버간 통신 인증이 된 상태를 의미합니다. 인증된 상태에서 데이터 송수신이 가능합니다. 세션 정보 한 세션 내에서, 클라이언트가 서버에 전송할 데이터 정보를 의미합니다. 서버는 세션 유지 시간이 지나거나, 클라이언트가 전송하려했던 데이터를 모두 수신할 때까지 클라이언트와의 세션 상태를 유지합니다. Stateful 세션이 종료될 때까지, 클라이언트의 세션 정보를 저장하는 방식입니다. 예제 온라인 뱅킹 은행(서..
들어가기 전, 그 놈의 런타임..런타임..런타임.. 평소에 '런타임' 이라는 용어를 많이 사용하지만, 그 용어의 개념이 명확하지 않다. 위키백과에선 '런타임' 과 '런타임 환경' 을 분리해서 설명하는데, 우리가 평소에 사용하는 '런타임' 은 '런타임 환경' 을 의미하는 것 같다. https://ko.wikipedia.org/wiki/런타임 따라서, '런타임 환경' 에 대해서 다뤄보고자 한다. 런타임 환경이란? '런타임 환경' 은 프로그래밍 언어가 구동되는 환경이다. 예를 들어, JavaScript 가 Browser 에서 실행된다면 '런타임 환경' 은 Browser 가 되고 Node.js 에서..
Fine-Grained 하나의 작업을 작은 단위의 프로세스로 나눈 뒤, 다수의 호출을 통해, 작업 결과를 생성해내는 방식 예를 들어, Do() 라는 함수가 있다면 해당 함수를 First_Do(), Second_Do() 로 나누어 작업 결과를 생성해내는 방식 따라서, 다양한 "Flexible System" 상에서 유용하게 쓰일 수 있음 Coarse-Grained 하나의 작업을 큰 단위의 프로세스로 나눈 뒤, "Single Call" 을 통해, 작업 결과를 생성해내는 방식 예를 들어, Do() 라는 함수가 있다면 단순히, Do() 를 호출해 작업 결과를 생성해내는 방식 따라서, "Distributed System" 상에서 유용하게 쓰일 수 있음 참고 https://m.blog.naver.com/PostVie..
들어가기 앞서, 해당 포스트에서는 현존하는 코딩 패러다임에 대해 간단하게 다뤄보겠습니다. 절차적 프로그래밍(Procedural Programming) 절차적 프로그래밍이란, 프로그램을 재사용 가능한 함수 단위로 나누는 프로그래밍 구조를 의미합니다. 여기서 말하는 '절차'는, 순수한의미의 '절차'가 아닌, Procedual, 즉 함수를 의미합니다. 절차적 프로그래밍의 장단점은 아래와 같습니다. 장점 코드를 단위화할 수 있습니다. 단점 변수나 상수 등의 값들을 관리하는 '자료형'과 해당 자료형을 사용하는 '함수'가 분리되어 사용됩니다. 따라서, 사람들은 위 단점을 해결하기 위해, 자료형과 함수를 묶어서 사용하는 방법을 모색하게 되었습니다. 객체 지향 ..
인자 (Argument) 함수 호출 시, 함수에게 전달하는 값 매개 변수 (Parameter) 함수 호출 시, 전달되는 인자를 받아들이는 변수 예제 void test( int A ) { printf("%d\n",A); } int main( int argc, char* argv[] ) { test( 10 ); } 인자 test() 함수 호출 시, 함수에게 전달하는 값 = 10 매개변수 함수 호출 시, 전달되는 인자를 받아들이는 변수 = int A
직렬화(serialized) 객체를 외부 데이터로 저장하는 것 객체화된 클래스(인스턴스)의 속성과 데이터를 파일화하여 외부에 저장할 수 있음 역직렬화(deserialized) 직렬화로 저장된 파일을 다시 객체로 만드는 것
고가용성이란? 고가용성(HA, High Availability)이란 서버와 네트워크, 프로그램 등의 정보 시스템이 상당히 오랜 기간 동안 지속적으로 정상 운영이 가능한 성질을 말한다. 고가용성 -> "가용성이 높다" 라는 뜻으로 "절대 고장나지 않음"을 의미한다. 고가용성을 제공하기 위해서 주로 2개의 서버를 연결하는 방식을 사용한다. 2개로 묶인 서버 중 1대의 서버에서 장애가 발생하면, 다른 서버가 즉시 그 업무를 대신 수행하므로, 시스템 장애를 불과 몇 초만에 복구할 수 있다.
내결함성이란? 운영중이던 시스템의 데이터가 손실되거나 진행중인 작업이 손상되지 않도록 전원 부족 또는 하드웨어 장애와 같은 돌발 사태에 대비할 수 있는 컴퓨터 또는 운영체제의 기능이다. 미러 볼륨, RAID-5 볼륨, 클러스터로 내결함성을 제공할 수 있다. 1. 미러볼륨 두 개의 실제 디스크 데이터를 복제하는 내결함성 볼륨이다. 미러 볼륨은 미러라고 하는 두개의 똑같은 볼륨을 사용해 볼륨에 포함된 정보를 복제하여 데이터 중복시킨다. 미러는 항상 다른 디스크에 존재한다. 미러 볼륨은 확장할 수 없다. 2. RAID-5 볼륨 세 개 이상의 실제 디스크에 걸쳐 데이터 및 패리티 스트라이프가 간헐적으로 만들어지는 내결함성 볼륨. 패리티는 오류 발생 후 데이터 재구축시 사용되는 계산 값이다. 동적 디스크에만 RA..