정리/질문 정리

자료구조란? 자료구조는 데이터를 효율적으로 저장, 관리, 처리하기 위한 다양한 형태입니다. 각각의 자료구조는 특정 문제를 해결하기 위해 설계되어있습니다. 상위 10개의 데이터 구조가 실제 세계에서 사용하는 모든 데이터 구조의 99%를 차지합니다. Array, Stack, Queue, Set, Map, Heap, Tree, Graph 질문 정리 저는 Java를 주로 사용하므로 Java 위주로 정리했습니다. 선형, 비선형 자료구조에 대해 설명해 주세요. 더보기 선형 구조 선형 구조는 데이터가 연속적으로 나열된 자료구조입니다. 긱 요소는 그 전후에 단 하나의 요소만을 가질 수 있습니다. 이로 인해 데이터 요소들은 한 줄로 나열될 수 있어 직선의 관계를 가집니다. 예시로는 배열, 연결 리스트(Linked Lis..
네트워크란 무엇인가요? 더보기 네트워크란 컴퓨터 시스템 또는 장치들이 연결되어 통신하거나 데이터를 교환하는 구조를 뜻 합니다. 네트워크에는 노드와 링크로 구성되어 있습니다. 노드는 서버, 라우터 스위치 등 네트워크 장치를 의마합니다. 링크는 유선, 무선 등을 의미합니다. TCP/IP 4계층과 각 계층에 대해 아는대로 설명해주세요 더보기 TCP/IP 4계층은 애플리케이션, 전송, 인터넷, 링크 계층들로 이루어져 있습니다. 애플리케이션 계층 응용 프로그램이 사용되는 프로토콜 계층입니다. 웹 서비스, 이메일 등 서비스를 사람들에게 제공하는 계층 입니다. 예시) FTP, HTTP 전송 계층 전송 계층은 송신자와 수신자를 연결하는 통신 서비스를 제공합니다. 애플리케이션과 인터넷 계층 사이의 데이터 전달할 때 중계..
Redis란 무엇인가요? 더보기 Redis란 인메모리 데이터 저장소이며 key-value 기반의 비정형 데이터를 저장하고 관리하는 NoSQL DBMS 입니다. Redis의 특징으로는 빠른 성능과 다양한 데이터 타입을 지원이 있으며 DB, 캐싱, 메시지 브로커 등의 용도로 사용합니다. 캐싱이란 무엇인가요? 더보기 캐싱이란 데이터를 빠르게 가져오기 위한 중간 저장소를 뜻 합니다. 주로 메모리에 데이터를 저장하여 디스크 보다 빠른 접근 시간을 가집니다. 데이터를 계산하거나 서버에서 가져오는 작업은 시간과 리소스가 많이 듭니다. 캐시를 사용하면 연산을 최소화하고 시간을 단축할 수 있습니다. 처음에는 데이터를 일반적으로 가져오고 캐시에 저장합니다. 그 이후 같은 데이터를 필요한 요청이 들어오면 서버에서 가져오는 ..
목차 운영체제란 무엇인가요? 더보기 운영체제란 컴퓨터 시스템의 하드웨어를 관리하고 사용자와의 인터페이스를 제공하는 소프트웨어 입니다. 운영체제는 컴퓨터 자원을 효율적으로 관리하여 다양한 기능을 수행합니다. (프로세스 관리, 메모리 관리, 파일 시스템 관리, 입출력 관리 등) 운영체제의 대표적인 예로는 Windows, Linux, Mac OS, iOS 등이 있습니다. 시스템콜이란 무엇인가요? 더보기 시스템콜이란 운영체제가 커널에 접근하기 위한 인터페이스입니다. 프로그램이 운영체제의 기능을 직접 호출하는 것이 아니라, 시스템 콜을 통해 운영체제에 작업을 요청하고 그 결과를 받습니다. 이렇게 함으로 보안 및 자원 관리를 할 수 있습니다. CPU 란 무엇인가요? 더보기 CPU는 컴퓨터 장치로 산술논리연산장치, ..
목차 View란 무엇인가요? 더보기 View란 하나 이상의 테이블로 만들어지는 가상 테이블 입니다. View는 쿼리문의 결과를 나타냅니다. 여러 개의 테이블에서 정보를 규합하거나, 복잡한 쿼리문의 결과를 저장하여 사용자가 편하게 사용할 수 있게 합니다. 또한 테이블의 숨기고 싶은 컬럼은 숨기고 보여주고 싶은 컬럼만 보여줄 수 있어 보안이 증가합니다. 가상 테이블답게 물리적으로 저장되지 않습니다. 다만, 쿼리문을 저장하므로 논리적으로 저장이 됩니다. 하지만 View는 한 번 만들어진 정의를 변경할 수 없습니다. 뷰는 뷰로부터 만들수도 있는데 복잡한 뷰는 성능 저하를 일으킬 수 있습니다. RDB와 NoSQL 더보기 RDB는 관계형 데이터베이스 입니다. 스키마에 따라 데이터를 저장하며 테이블끼리 관계를 맺을 ..
목차 Spring 이란 무엇인가요? 더보기 Spring 이란 자바 개발을 편리하게 해주는 오픈소스 프레임워크 입니다. Spring을 사용하면 트랜잭션 관리, MVC 웹 개발 등 다양한 부가 기능을 활용하여 개발을 편리하게 할 수 있습니다. Spring Boot 란 무엇인가요? 더보기 Spring Boot 란 Spring 기반의 애플리케이션을 빠르고 쉽게 개발할 수 있도록 지원해주는 프레임워크 입니다. Spring 애플리케이션 개발에 필요한 설정을 최소화하거나 자동화함으로써 개발자가 비즈니스 로직 개발에 집중하게 해줍니다. 주요 기능은 다음과 같습니다. 프로젝트의 필요한 의존성을 관리하고 쉽게 추가할 수 있게 해줍니다. 라이브러리들이 서로 호환되는 버전을 찾아줍니다. 톰캣과 같은 내장 서버를 보유해 별도의..
목차 Nginx란 무엇인가요? 더보기 Nginx란 높은 성능을 가진 비동기, 이벤트 기반 구조의 경량화 웹 서버 프로그램 입니다. Nginx는 높은 동시 처리 능력을 가져 트래픽이 높아도 효율적으로 처리합니다. 또한 정적 컨텐츠를 제공하며 로드밸런싱으로 서버의 부하를 분담합니다. 이런 특징으로 Nginx는 빠른 응답을 가능하게 하여 웹 사이트를 가볍게 하고 성능을 향상 시킵니다. Nginx는 왜 사용하나요? 더보기 Nginx의 주된 사용 이유는 높은 동시 연결 처리 능력 입니다. Nginx는 이벤트 기반 구조로 설계되어 있어 동시에 많은 요청을 처리하는데 효과적입니다. 이는 높은 트래픽이 발생하는 환경에서도 높은 성능을 유지하게 합니다. 또한 Nginx를 사용하면 WAS에 부담을 주일 수 있습니다. Ng..
목차 Jenkins란 무엇인가요? 더보기 Jenkins는 CI/CD를 제공하는 오픈소스 툴 입니다. Jenkins는 변경 코드를 지속적으로 통합하고 빌드, 테스트, 배포 과정을 자동화합니다. 이를 통해 개발 생산성을 향상시키고, 오류를 빠르게 발견하여 수정할 수 있게 돕습니다. 이는 프로젝트의 품질을 향상시키고 피드백으로 빠르게 대응하게 합니다. Jenkins의 장단점에 대해 설명해 주세요. 더보기 Jenkins의 큰 장점은 CI/CD 파이프라인 구축하는데 필요한 기능을 제공하는 것 입니다. 개발자는 Jenkins를 통해 빌드, 테스트, 배포 등의 작업을 자동화하여 새로운 코드의 통합 및 배포를 신속하게 할 수 있습니다. 이는 고객의 요구사항에 빠르게 대응할 수 있게 하며 개발자의 반복적인 작업을 줄여 ..
목차 Java란 무엇인가요? Java의 특징에 대해 말해주세요. 더보기 Java란 객체지향 프로그래밍 언어입니다. 자바의 특징으로는 객체 지향 프로그래밍, 플랫폼 독립성, 자동 메모리 관리 등등이 있습니다. 자바는 객체 지향 언어로 캡슐화, 추상화, 상속, 다형성 등의 객체 지향 개념을 지원합니다. 자바는 자바 가상 머신인 JVM 위에서 실행되므로 JVM이 설치되어 있는 모든 플랫폼에서 동작할 수 있습니다. 자바는 가비지 컬렉터라는 시스템을 통해 메모리를 자동으로 관리합니다. 이 밖에도 다양한 API 라이브러리 지원, 다양한 개발 도구를 지원함으로 다양한 애플리케이션 개발에 사용되고 있습니다. Java의 장단점은 무엇인가요? 더보기 Java의 여러 개의 장점을 가지고 있습니다. Java의 장점 중 하나는..
목차 Docker 란 무엇인가요? 더보기 Docker란 애플리케이션을 빠르게 구축, 테스트 및 배포 할 수 있는 컨테이너 기반 오픈소스 가상화 플랫폼 입니다. Docker는 애플리케이션을 컨테이너로 패키징하며, 이 컨테이너에는 라이브러리, 시스템 도구, 코드 등 애플리케이션을 실행하는데 필요한 모든 것이 담겨져 있습니다. Docker를 사용하면 환경에 상관없이 애플리케이션을 신속하게 배포, 확장 할 수 있습니다. 가상화란 무엇인가요? 더보기 가상화란 하드웨어, 운영체제, 소프트웨어, 네트워크 등 다양한 컴퓨팅 리소스를 추상화하고 분할하여 여러 개의 독립된 환경으로 만드는 기술 입니다. 즉 하나의 물리적 서버를 여러 개의 가상 서버로 분할하여 사용하는 기술입니다. 이를 통해 하나의 물리적 서버를 최대한 활..
너지살
'정리/질문 정리' 카테고리의 글 목록