CS

    [CS] HashTable & Set & Map에 대해

    [CS] HashTable & Set & Map에 대해

    Set 집합 순서가 없다. 집합이므로 중복된 데이터가 들어갈 수 없다. 중복되지 않는 숫자(데이터)를 구할 때 사용하면 유용하다. 순서가 없고, 중복을 허용하지 않는다 HashSet 순서를 보장 하지 않는 set TreeSet Binary Search Tree 구조 추가와 삭제에는 시간이 좀 더 걸리지만, 정렬 및 탐색에 성능이 좋음 오름차순으로 데이터를 저장 TreeSet set1 = new TreeSet();//TreeSet생성 Map Key와 Value로 이뤄진 데이터의 집합 Key의 중복은 허용되지 않고, Value의 중복은 가능하다. HashMap 순서를 보장하지 않는 map, Key와 Value로 null이 허용된다. HashTable 동기화를 지원하는 map, Key와 Value로 null이..

    [CS]가상 메모리,  페이징과 세그멘테이션에 대해

    [CS]가상 메모리, 페이징과 세그멘테이션에 대해

    메모리 관리 컴퓨터 내의 한정된 메모리를 극한으로 활용해야 하기 때문에 가상 메모리 운영체제 관련 프로세스만 몇GB가 넘을텐데, 스마트폰에 앱 하나 실행하는 것도 아닌데 물리 메모리의 크기에 한계를 극복하기 위한 기술 실제 메모리 주소가 아닌 가상의 메모리 주소를 주는 방식으로 사용 Swapping 가상 메모리에는 존재하지만 RAM에는 없는 데이터나 코드에 접근할 땐 오류가 발생하게 되는데, 이때 메모리에서 지금 당장 사용하지 않은 영역을 저장공간으로 옮기고 저장공간의 일부분을 마치 메모리처럼 불러와 쓰는 것 말 그대로 메모리와 저장공간을 서로 Swap해서 쓰는 기술 메모리 할당 메모리에 프로그램을 할당할 때는 시작 메모리 위치, 메모리 할당 크기를 기반으로 할당 연속 할당 그냥 프로세스를 순차적으로 메..

    로드 밸런싱(Load Balancing) 이란?

    로드 밸런싱(Load Balancing) 이란?

    로드 밸런싱(Load Balancing) 여러 서버에게 균등하게 트래픽을 분산시켜주는 것 요즘 시대에는 웹사이트에 접속하는 인원이 급격히 늘어나게 되었다. 따라서 이 사람들에 대해 모든 트래픽을 감당하기엔 1대의 서버로는 부족하다. 대응 방안으로 하드웨어의 성능을 올리거나(Scale-up) 여러대의 서버가 나눠서 일하도록 만드는 것(Scale-out)이 있다. 하드웨어 향상 비용이 더욱 비싸기도 하고, 서버가 여러대면 무중단 서비스를 제공하는 환경 구성이 용이하므로 Scale-out이 효과적이다. Load Balancer를 클라이언트와 서버 사이에 두고, 부하가 일어나지 않도록 여러 서버에 분산시켜주는 방식이다. 서비스를 운영하는 사이트의 규모에 따라 웹 서버를 추가로 증설하면서 로드 밸런서로 관리해주면..

    TLS/SSL에 대해

    TLS/SSL에 대해

    TLS(Transport Layer Security) HTTPS에서 클라이언트와 서버간 통신 전 SSL 인증서로 신뢰성 여부를 판단하기 위해 연결하는 방식 과거에는 SSL(Secure Sockets Layer)라고 불렸던 프로토콜인데 버전이 올라가면서 이름이 바뀜 인터넷 같이 TCP/IP 네트워크를 사용하는 통신에 적용되며, 통신 과정에서 전송계층 종단간 보안과 데이터 무결성을 확보 클라이언트와 서버가 통신할 때 SSL/TLS를 통해 제3자가 메시지를 도청하거나 변조하지 못하도록 한다 TCP/IP 네트워크를 사용하는 곳에서 동작하는 프로토콜이기 때문에 전송계층(Transport Layer)에서 동작 AWS에서도 SSL 인증서를 발급하고 HTTPS에 적용하는 과정을 해본적이 있을 것이다 데이터 자체를 암호..

    DevOps란?

    DevOps란?

    DevOps란? 소프트웨어의 개발(Development)과 운영(Operations)의 합성어 소프트웨어 개발자와 정보기술 전문가 간의 소통, 협업 및 통합을 강조하는 개발 환경이나 문화를 말한다. 소프트웨어 제품과 서비스를 빠른 시간에 개발 및 배포하는 것을 목적 CODE JIRA 애자일 방법론을 얘기할 때 꼭 언급되는 툴이 바로 아틀라시안의 지라(Jira) 버그 및 이슈 추적, 프로젝트 관리에 최적화된 프로젝트 관리형 협업툴 지라는 스타트업뿐만 아니라 최근에는 대기업에서도 활발하게 사용하고 있으며, 업무 효율을 높여 경쟁력 있는 조직으로 변화하는데 필수적인 툴로 손꼽히고 있다 GIT BUILD maven gradle 빌드 속도가 Maven에 비해 10~100배 가량 빠름 의존성이 늘어날 수록 성능과 ..

    CS 면접 준비(데이터베이스)

    CS 면접 준비(데이터베이스)

    Q. 데이터베이스를 사용하는 이유는 무엇일까? 데이터의 종속성 문제와 중복성, 데이터 무결성 문제를 해결하기 위해 사용합니다. Q. 데이터 종속성, 중복성, 무결성은 무엇일까요? 종속성은 프로그램의 구조와 데이터의 구조가 서로 영향을 받는다는 의미입니다. 종속성이 안지켜지면 데이터구조가 바뀔 때 프로그램 구조도 바뀌게 되어 개발과 비용이 많이 듭니다. 중복성은 말 그대로 중복적으로 데이터가 중복적으로 존재해서 저장공간이 낭비되는 일입니다. 무결성은 정확성과 일관성을 유지하고 보증하는 의미입니다 Q. 참조 무결성 제약조건과 개체 무결성 제약조건의 차이점은 무엇인가요? 참조 무결성 제약조건 : 외래키는 참조할 수 없는 값을 가질 수 없다 개체 무결성 제약조건 : 기본키는 null 값이 될 수 없다 Q. Ke..