프로세스와 쓰레드의 차이에 대해 설명프로세스는 실행 중인 프로그램을 말하며, 완벽히 독립적이기 때문에 메모리 영역(Code, Data, Heap, Stack)을 다른 프로세스와 공유하지 않습니다. 프로세스는 최소 1개의 쓰레드(메인 쓰레드)를 가지고 있습니다.쓰레드는 프로세스 내에서 Stack만 따로 할당 받고, 그 이외의 메모리 영역(Code, Data, Heap)영역을 공유하기 때문에 다른 쓰레드의 실행 결과를 즉시 확인할 수 있습니다. 쓰레드는 프로세스 내에 존재하며 프로세스가 할당받은 자원을 이용하여 실행됩니다.멀티 프로세스와 멀티 쓰레드의 특징에 대해 설명멀티 프로세스는 하나의 프로세스가 죽어도 다른 프로세스에 영향을 끼치지 않고 계속 실행된다는 장점이 있지만 멀티 쓰레드보다 많은 메모리 공간과..
이론/⭐
HTTP 프로토콜에 대해 설명HTTP(Hyper Text Transfer Protocol)이란 데이터를 주고 받기 위한 프로토콜이며, 서버/클라이언트 모델을 따릅니다.HTTP는 상태 정보를 저장하지 않는 Stateless의 특징과 클라이언트의 요청에 맞는 응답을 보낸 후 연결을 끊는 Connentionless의 특징을 가지고 있습니다.장점통신간의 연결 상태 처리나 상태 정보를 관리할 필요가 없어 서버 디자인이 간단하낟각각의 HTTP 요청에 독립적으로 응답만 보내주면 OK단점이전 통신의 정보를 모르기 때문에 매번 인증을 해줘야 한다.이를 해결하기 위해 쿠키(cookie)나 세션(session)을 사용해서 데이터 처리한다.HTTP와 HTTPS의 차이점은 무엇인가요?HTTP는 평문 데이터를 전송하는 프로토콜이..
동적 계획법(DP, Dynamic Programming) 에 대해 설명주어진 문제를 풀기 위해, 문제를 여러 개의 하위 문제로 나누어 푸는 방법동적 계획법에서는 어떤 부분 문제가 다른 문제들을 해결하는데 사용될 수 있어, 답을 여러 번 계산하는 대신 한 번만 계산하고 그 결과를 재활용하는 메모이제이션(Memoization)기법으로 속도를 향상시킬 수 있습니다.메모이제이션 : 동일한 계산을 반복해야 할 때, 이전에 계산한 값을 재사용함으로써 동일한 계산의 반복 수행을 제거하여 프로그램 실행 속도를 빠르게 하는 기술동적 계획법(DP, Dynamic Programming)이 갖는 2가지 조건은 무엇인가요?중복되는 부분(작은) 문제중복되는 부분 문제는 나눠진 부분 문제가 중복되는 경우로, 메모이제이션 기법을 사..
Array(List)의 가장 큰 특징과 그로 인해 발생하는 장점과 단점 설명Array의 가장 큰 특징은 순차적으로 데이터를 저장한다는 점데이터에 순서가 있기 때문에 0부터 시작하는 index가 존재하며, index를 사용해 특정 요소를 찾고 조작이 가능하다는 것이 Array의 장점입니다.순차적으로 존재하는 데이터의 중간에 요소가 삽입되거나 삭제되는 경우 그 뒤의 모든 요소들을 한 칸씩 뒤로 밀거나 당겨야 하는 단점도 있습니다.이러한 이유로 Array는 정보가 자주 삭제되거나 추가되는 데이터를 담기에 적절치 않습니다.Array를 적용시키면 좋을 데이터의 예를 구체적으로 들어주세요. 구체적 예시와 함께 Array를 적용하면 좋은 이유, 그리고 Array를 사용하지 않으면 어떻게 되는지 함께 설명해주세요Arr..
WAS(Web Application Server)와 WS(Web Server)의 차이 설명WAS(Web Application Server)비즈니스 로직을 넣을 수 있음Tomcat, PHP,ASP, .NET 등WS(Web Server)비즈니스 로직을 넣을 수 없음Apache, Nginx 등https://lavender1122.tistory.com/330 [WEB]WEB(아파치)과 WAS(톰캣)WEB Server웹 서버는 작성된 html 페이지 등을 네트워크 망에 종속되지 않고, 웹서비스를 할 수 있도록 어플리케이션클라이언트에게 요청을 받으면 해당 요청을 판단하여 정적인 자원은 WAS를 거치lavender1122.tistory.com Spring Framework에 대해 설명스프링 프레임워크는 자바 개발을 ..
데이터베이스의 특징에 대해 설명실시간 접근성 (Real - Time Accessibility) : 비정형적인 질의(조회)에 대하여 실시간 처리에 의한 응답이 가능지속적인 변화 (Contiunous Evloution) : 데이터베이스의 상태는 동적입니다. 즉 새로운 데이터의 삽입(Insert), 삭제(Delete), 갱신(Update)으로 항상 최신의 데이터를 유지동시 공용(Concurrent Sharing) : 데이터베이스는 서로 다른 목적을 가진 여러 응용자들을 위한 것이므로 다수의 사용자가 동시에 같은 내용의 데이터를 이용할 수 있어야 합니다.내용에 의한 참조(Content Reference) : 데이터베이스에 있는 데이터를 참조할 때 데이터레코드의 주소나 위치에 의해서가 아니라 사용자가 요구하는 데..
java의 특징자바는 객체지향 프로그래밍 언어기본 자료형을 제외한 모든 요소들이 객체로 표현되고, 객체 지향 개념의 특징인 캡슐화, 상속, 다형성이 잘 적용된 언어장점 JVM(자바가상머신) 위에서 동작하기 때문에 운영체제에 독립적이다. GabageCollector 를 통한 자동적으로 메모리 관리가 가능하다 단점 JVM 위에 동작하기 때문에 실행 속도가 상대적으로 느리다.다중 상속이나 타입에 엄격하며, 제약이 많다JVM의 역할JVM은 스택 기반으로 동작하며, Java Byte Code를 OS에 맞게 해석 해주는 역할을 하고 가비지컬렉션을 통해 자동적인 메모리 관리를 해줍니다.Java의 컴파일 과정에 대한 설명개발자가 .java 파일을 생성build 한다 Java Compiler의 javac의 명령어를 통해..