소프트웨어 설계
·
CS
✅ 소프트웨어 개발 방법론폭포수 모형 소프트웨어 공학에서 가장 오래되고 폭넓게 사용된 전통적인 소프트웨어 생명 주기 모형소프트웨어 개발 과정의 한 단계가 끝나야만 다음 단계로 넘어갈 수 있는 선형 순차적 모형각 단계가 끝난 후 다음 단계를 수행하기 위한 결과물이 명확하게 산출되어야 함프로토타입 모형폭포수 모형의 요구사항 변경에 따른 어려움을 보완한 모형으로 사용자의 요구사항을 충실히 반영함실제 상황 전에 가상의 시뮬레이션을 통하여 최종 결과물에 대한 예측 가능프로젝트의 관리가 용이하고, 노력과 비용을 절감나선형 모형보헴이 제안한 것으로, 폭포수 모형과 프로토타입 모형의 장점에 위험 분석 기능을 추가한 모형여러 번의 소프트웨어 개발 과정을 거쳐 점진적으로 최종 소프트웨어 개발 (점진적 모형)소프트웨어 개발..
경로 제어 프로토콜이란?
·
CS/Network
경로 제어 프로토콜네트워크 장치가 서로 데이터를 주고받기 위해 네트워크 내 최적의 경로를 결정하고 유지하는 데 사용되는 프로토콜 경로 제어 프로토콜의 종류IGP(내부 게이트웨이 프로토콜): 하나의 자율 시스템 내의 라우팅에 사용되는 프로토콜- RIP현재 가장 널리 사용되는 라우팅 프로토콜로 거리 벡터 라우팅 프로토콜이라고도 불리며, 최단 경로 탐색에 Bellman-Ford 알고리즘이 사용됨최대 홉 수를 15로 제한하므로 15 이상의 경우는 도달할 수 없는 네트워크를 의미 → 대규모 네트워크에서는 RIP을 사용할 수 없음을 의미- OSPFRIP의 단점을 해결해 새로운 기능을 지원하는 인터넷 프로토콜로, 대규모 네트워크에서 많이 사용됨인터넷 망에서 이용자가 최단 경로를 선정할 수 있도록 라우팅 정보에 노드 ..
[운영체제] 가상 메모리
·
CS/OS
페이징 기반 메모리 관리 · 프로세스의 모든 메모리 참조는 논리주소이며, 이 주소는 수행시간에 물리주소로 변환됨   ☞  한 프로세스가 그 수행 과정에서 스와핑을 통해 다시 메모리에  적재될 때, 그 이전과 다른 위치에 적재될 수 있음을 의미 -> 재배치 · 한 프로세스의 주소공간은 페이지로 분할될 수 있고, 프로세스 수행 중 이 페이지들은 메모리의 연속된 영역에 위치할 필요가 없음   ☞ 프로세스가 수행될 때 페이지 테이블을 활용해 동적으로 주소를 변환함으로써 가능케 함 ● 만약 두 특성이 만족된다면, 수행 시간에 프로세스의 모든 페이지(혹은 세그먼트)가 주기억장치에 적재되어 있을 필요가 없음 ! 프로세스의 일부 페이지 적재 후 실행 방법 - 운영체제는 초기에 수행될 프로세스의 코드와 데이터가 포함되도..
[운영체제] 스레드 동기화
·
CS/OS
스레드 동기화다수의 스레드가 공유 데이터를 동시에 접근할 때 공유 데이터가 훼손되지 않게 스레드의 실행을 제어하는 기법한 스레드가 공유 데이터 사용을 마칠 때까지 다른 스레드가 공유 데이터에 접근하지 못하도록 제어‣ 임계구역과 상호배제임계구역 : 공유 데이터에 접근하는 프로그램 코드들상호배제 : 임계구역에 먼저 진입한 스레드가 임계구역의 실행을 끝낼 때까지, 다른 스레드가 진입하지 못하도록 보장상호배제 구현 요구조건상호배제가 강제되어야 함임계구역에 접근하고자 하는 스레드의 수행이 무한히 미루어져서는 안 됨임계구역이 비어 있을 때, 임계구역에 진입하려고 하는 스레드는 즉시 임계구역에 들어갈 수 있어야 함일반 코드에서 수행이 멈춘 스레드는 다른 스레드의 수행을 간섭해서는 안 됨스레드 개수나 상대적인 스레드 ..
[MYSQL] 데이터 삭제 DELETE, DROP, TRUNCATE
·
CS/SQL
DELETE, DROP, TRUNCATE는 모두 데이터베이스에서 데이터를 삭제하는 명령어지만, 각각의 목적과 동작 방식이 다르다. DELETE, DROP, TRUNCATE 특징1. DELETE테이블에서 특정 조건에 맞는 데이터를 삭제하는 데 사용된다. 삭제한 데이터는 트랜잭션 로그에 기록되므로 롤백이 가능하다. WHERE 절을 사용하여 특정 조건에 맞는 데이터만 삭제할 수 있다. 테이블 구조나 데이터 정의는 영향을 받지 않는다. 삭제 후에도 테이블에 데이터가 남아 있을 수 있다. 2. DROP테이블, 데이터베이스, 또는 다른 객체를 삭제하는 명령어다. 이 명령어를 실행하면 해당 테이블이나 객체 자체가 삭제되고, 복구할 수 없다. 테이블의 모든 데이터와 구조가 완전히 삭제되며, 관련된 모든 인덱스와 제약 ..
[Java] 상속, 생성자, 오버라이딩
·
CS
상속- 자바에서 기존 클래스(부모 클래스 또는 슈퍼 클래스)의 속성과 메서드를 새로운 클래스(자식 클래스 또는 서브 클래스)가 물려받는 기능 - 상속을 통해 자식 클래스는 부모 클래스의 기능을 재사용하거나 확장 가능상속 기본 문법 extends 키워드 사용class 부모클래스 { // 부모 클래스의 멤버 변수와 메서드}class 자식클래스 extends 부모클래스 { // 자식 클래스는 부모 클래스의 멤버를 상속받음}// 예제class Animal { void sound() { System.out.println("Some sound..."); }}class Dog extends Animal { void bark() { System.out.println(..
[네트워크] 0.0.0.0/0 IP란
·
CS/Network
0.0.0.0/0는 네트워크에서 사용되는 CIDR (Classless Inter-Domain Routing) 표현으로, "모든 IP 주소"를 의미한다. 사이더(CIDR)란 클래스 없는 도메인 간 라우팅 기법이라는 뜻이다. 구체적으로 설명하자면:0.0.0.0은 특정 IP 주소를 가리키지 않고 네트워크 전체를 가리키는 특수 주소이다./0은 서브넷 마스크로, 0비트의 주소 부분만 고정하고 나머지 32비트는 모두 가변적임을 나타낸다. 이로 인해 IPv4 주소 범위 전체인 0.0.0.0부터 255.255.255.255까지 모든 IP가 포함된다.이는 주로 방화벽 규칙, 라우팅 테이블, 네트워크 설정에서 외부 네트워크의 모든 IP 주소에 접근을 허용하거나 차단할 때 사용되는데 예를 들어, 특정 포트에 대해 0.0.0..
[네트워크] 폴링 / 롱 폴링 (Polling / Long Polling)
·
CS/Network
Polling 폴링(polling)은 가장 기본적인 데이터 처리방식으로, 클라이언트가 주기적으로 서버에 요청을 보내 데이터를 확인하는 방식이다. 서버는 클라이언트 요청에 대해 새로운 데이터가 있는지 확인하고, 새로운 데이터가 있으면 이를 클라이언트에게 응답으로 보낸다. 주로 실시간 데이터 처리가 중요한 경우 사용된다.  장점 단순성: 폴링은 구현이 간단하고, 대부분의 표준 HTTP 요청을 사용하므로 복잡한 추가 설정이 필요 없음.상태 유지 불필요: 서버가 클라이언트의 상태를 유지할 필요가 없어 서버 자원을 절약할 수 있음.쉽게 확장 가능: 클라이언트와 서버 간의 통신이 독립적이므로 여러 클라이언트가 동시에 요청을 보내도 서버에서 쉽게 처리할 수 있음.단점비효율성: 클라이언트가 일정 시간마다 서버에 요청을..