
정의: 비트는 정보의 가장 작은 단위로 0또는 1의 값을 가진다용도: 컴퓨터의 모든 데이터는 비트로 변환되어 처리된다. 여러 비트가 모여 복잡한 데이터를 형성한다정의: 바이트는 보통 8개의 비트로 구성된 데이터 단위이다. 8bit=1Byte예) 문자 'A'는 ASCII
1. 데이터의 기술적 개념 데이터들은 수많은 0과 1로 이루어진 숫자에 불과하다. 데이터는 0혹은 1로 이루어진 숫자이고, 컴퓨터는 2진법의 숫자를 전기의 켜짐(On), 꺼짐(Off)로 표현할 수 있다. 즉, 데이터는 아주 긴 전기신호인 것이다. 데이터가 전기 신호라

신뢰성: 데이터를 순차적, 안정적으로 전달전송: 포트 번호에 해당하는 프로세스 데이터를 전달오류 감지 및 수정: 전송 계층은 데이터가 올바르게 수신 되었는지 확인하고, 손실된 패킷을 재전송 하는 기능을 제공순서 보장: 데이터 패킷이 올바른 순서로 수신 될 수 있도록 관

쓰레드는 프로그램의 실행 흐름을 나타내는 가장 작은 단위로, 쓰레드는 프로세스 내에서 실행될 수 있는 여러개의 작업(코드 실행) 중 하나로, 각 쓰레드는 독립적으로 처리되지만 같은 프로세스 내에 있는 여러 쓰레드가 자원을 공유할 수 있다.프로세스: 운영체제에서 실행되는

두 엔티티가 각각 하나씩의 서로에 대한 참조를 가지는 경우User 클래스@OneToOne(mappedBy = "user"): 이 필드가 Profile 클래스의 user 필드를 통해 매핑되었음을 나타낸다.Profile 클래스@JoinColumn(name = "user_i

도청 가능평문 통신이므로 도청이 가능하다메시지가 중간에 변경되어도 알 수 없다.완전성을 증명할 수 없기때문에 변조가 가능하며, 수신자는 이 사실을 알 수 없다올바른 상대와 통신하고 있는지 알 수 없다.구조가 단순한 HTTP는 현재 통신하고 있는 상대가 누구인지 확인하지

논리주소는 CPU가 프로그램을 실행하는 과정에서 생성하는 주소로, 논리 주소는 운영체제의 관리 하에 CPU가 직접적으로 사용하는 주소사용자에게 제공되는 주소이므로, 실제 하드웨어 메모리와는 관련이 없고, 메모리 요구사항을 처리하기 위해 사용된다.CPU 내부에 있는 MM

Java Virtual Machine의 줄임말인 JVM은 OS의 종속받지 않고 CPU가 JAVA를 인식, 실행할 수 이게 하는 가상 컴퓨터따라서 JAVA 언어는 JVM에 의해 "운영체제에 독립적" 이라는 장점을 가진다.Java 프로그램을 OS 대신 실행을 담당하는 역할

참조되지 않는 객체들이 차지하고 있는 메모리를 해제하는 것더이상 참조되지 않고있는 객체들이 차지하고 있는 메모리의 낭비들을 C,C++에서는 직접 해제해서 해결해줘야 했지만, Java는 JVM의 가비지 컬렉터가 자동으로 수행해줌JVM가비지 컬렉터는 런타임 영역의 Heap

데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용의 단위. 여기서 유사한 시스템이란 트랜잭션이 성공과 실패가 분명하고 상호 독립적이며, 일관되고 믿을 수 있는 시스템을 의미한다. 오류로부터 복구를 허용하고 데이터베이스를 일관성있게 유지하는 안정적인 작업 단위 제

RESTful API란 REST를 기반으로 만들어진 API를 의미한다REST(Representational State Transfer)의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것을 의미즉,1\. HTTP URI를 통해 자원을 명시하고 ->

서버의 위치를 찾아가기 위해 가장 기본적인 것Origin= scheme+hostname+port동일한 출처와 관련된 정책서로 다른 출처간 자원(API 등)을 공유하지 않는 브라우저 정책Web 서버가 데이터 처리를 위해 API 서버에 접근하였지만, Origin이 서로 달

: 변수의 값으로 실제 값이 아닌 값이 저장된 메모리의 주소를 가지는 타입클래스인터페이스배열열거형(Enum) 참조 타입을 클래스의 인스턴스 변수로 사용 시, 사이드 이펙트 발생 우려1\. 공유 상태: 참조 타입의 인스턴스 변수를 여러 객체가 공유할 경우, 한 객체에서

Http 프로토콜은 클라이언트에서ㅏ 서버에 요청을 보내면 서버는 클라이언트에 응답을 하고 연결을 끊는 특징을 가지고 있다.Http 통신은 연결을 끊는 순간 클라이언트와 서버의 통신이 끝나며 상태 정보를 유지하지 않는 특징이 있으며 이를 Stateless라고 한다.클라이

클라이언트의 요청을 처리하고 그 결과를 반환하는 기술동적 웹페이지 서버에서 수행되는 소형 프로그램각 사용자의 요청이 서버의 하나의 스레드로 수행된다.자바 서블릿은 자바를 사용해 웹페이지를 동적으로 생성하는 서버 내 프로그램외부 요청에 대해 스레드로 응답하기 때문에 프로

사용자가 브라우저를 통해 요청을 보내면, Web Server는 요청된 HTML 파일(서버에 이미 저장되어있는 파일)을 그대로 보내준다.서버에 저장된 데이터가 변경되지 않는 한 항상 동일한 페이지를 반환한다.다른 처리 없이 요청에 대한 파일만 전송하기 때문에 빠름단순한

프로그래머가 어떠한 기능을 수행하기 위해 도움을 주는 또는 필요한 것을 제공해주는 역할라이브러리는 재사용이 필요한 기능으로 반복적인 코드 작성을 없애기 위해 언제든지 필요한 곳에서 호출하여 사용할 수 있도록 Class나 Function으로 만들어진다.프로그램을 만들 때

제어 추상화는 어떤 클래스의 메소드를 사용하는 사용자에게 해당 메소드의 작동방식과 같은 내부 로직을 숨기고 이를 실행하기 위한 인터페이스를 제공하는 것을 말한다.예를들어운전자가 자동차를 운전할 때, 운전자는 자동차 엔진 작동 프로세스가 어떻게 작동하는지에 대해서 알 필

유저가 실제 유저인지 인증하는 개념사용자의 신원을 검증하는 프로세스ID, PW로 로그인하는 행위인증 이후 프로세스로, 인증된 유저가 어떠한 자원에 접근할 수 있는지 확인하는 절차관리자는 관리자 페이지에 접근 가능일반적으로 서버 - 클라이언트 구조로 되어있다.Http 프

불변 객체를 쉽게 생성/관리할 수 있도록 하는 유형의 클래스레코드를 사용하지 않고 불변 객체를 구현하는 경우 다음과 같은 규칙을 지켜야 한다.1\. 모든 필드를 final 로 선언2\. private 선언하여 3\. 변경 메서드 setter 제공x4\. 생성자 제공5\

하위 클래스의 공통점을 추상화하여 만든 클래스를 의미한다.다중 상속이 불가능하여 단일 상속만 허용추상 클래스는 추상 메소드 외의 일반 클래스처럼 일반적인 필드, 메서드, 생성자를 가질 수 있다.상태정보 저장 가능생성자 구현 가능모든 메서드를 public 으로 정의해야

서비스를 중단하지 않고 배포하는 것을 의미한다.배포: 개발된 코드를 패키징하여 서버에서 새로운 버전의 애플리케이션을 실행하도록 하는 행위v1 서비스가 실행 중 일때 v2 버전을 다운받는다.v1 서비스를 종료시키는 시점부터 v2를 시작하기 전까지 서비스는 중단된다.서비스

사용자가 누구인지(적합한지) 확인하는 과정로그인인증된 사용자에게 권한을 허용게시물 수정, 관리자 권한 등JWT + 쿠키,세션구글이나 애플 등의 외부 소셜 계정을 기반으로 간편히 회원가입 및 로그인 할 수 있는 웹 어플리케이션들이 있는데,웹 어플리케이션에서 구글 등이 제

동시에 여러 스레드가 공유 자원에 접근하면일관성 없는 데이터데드락: 두 개 이상의 스레드가 서로 다른 자원을 점유하고, 상대 자원을 기다릴때 교착상태 발생성능 저하: 스레드간의 경쟁 상황으로 인한 성능저하여러 프로세스 혹은 스레드가 작업을 수행하면서 공유된 자원을 건드

데드락을 회피하기 위해 사용되는 기법으로, 운영체제가 각 프로세스들에게 어느 정도의 자원을 할당해야 교착상태가 발생하는지 파악해서 교착상태가 발생하지 않는 수준의 자원만 할당모든 프로세스가 최종적으로 그들의 최대 자원 요구를 만족할 수 있는 순서(실행 순서)를 찾을 수

개념
초기 웹 서비스는 정적페이지사용자마다 각각의 다른 응답을 생성해 줄 필요가 생김WAS의 등장로직을 수행해서 동적 컨텐츠 생성Servlet : 동적 컨텐츠를 만드는 기술 혹은 사용되는 객체가독성이 너무 구림유지보수 어려움HTML 코드에 Java 코드를 넣어 동적 웹 페이
웹 소켓은 웹 앱과 서버 간의 지속적인 연결을 제공하는 프로토콜로, 이를 통해 서버와 클라이언트간에 양방향 통신이 가능해진다.HTTP와는 달리, 웹 소켓 연결은 한 번 열린 후 계속 유지되므로, 서버나 클라이언트에서 언제든지 데이터를 전송할 수 있어서, 실시간 통신에

멀티 스레드 환경에서 변수, 객체나 함수 등의 자원이 여러 스레드에 의해 동시에 접근되어도 프로그램이 정상적으로 동작하는 상태를 스레드 세이프하다고 말한다.즉, 여러 스레드가 같은 객체나 데이터를 사용할 때, 그 객체나 데이터가 일관성을 유지하도록 보장되는 프로그래밍의

동시에 여러 트랜잭션이 데이터베이스의 동일한 자원에 접근할 때 발생할 수 있는 충돌을 방지하기 위한 메커니즘즉, 한 트랜잭션을 시작하고 데이터를 수정하는 동안에는 커밋이나 롤백 전까지 다른 트랜잭션이 해당 데이터를 수정할 수 없게 막아 데이터의 무결성을 유지하는 역할을

CPU/코어에서 실행 중이던 프로세스/스레드가 다른 프로세스/스레드로 교체되는 것프로세스나 스레드의 현재 상태를 의미운영체제나 여러 프로세스나 스레드를 효율적으로 관리하기 위한 정보들이며, 다음과 같은 요소들이 포함1\. CPU 레지스터 상태: 현재 실행중인 프로세스의

given(준비)테스트를 준비하는 과정테스트에 사용하는 값을 정의when(실행)테스트하고자 하는 기능 실행then(검증)기능을 실행한 후 결과 검증효율적이고 좋은 단위 테스트를 위해 지켜야 하는 원칙빨라야한다테스트는 독립적으로 동작해야 한다.이전 테스트에 영향을 받으면

\[CS]Process vs Thread\[CS] Thread기존의 스레드라고 부르던 것은 정확히는 플랫폼 스레드(Platform Thread)이다.특징: 플랫폼 스레드는 OS의 스레드와 1:1로 매핑된다. 즉, 자바 코드에서 스레드를 하나 만들면, 운영체제도 실제 스