CS
-
CS 스터디 - JavaCS 2023. 8. 31. 02:17
#1 ArrayList와 Linked List 차이점? ArrayList 배열과 유사하나 크기를 지정하지 않고 동적으로 값을 삽입하고 삭제할 수 있음 초기 용량이 다 차면 더 큰 ArrayList 생성 후 거기다 복사한다. 원소가 많다면 대략적인 용량을 처음에 설정하는 것이 성능상 좋다. 조회 각 데이터의 index 가지고 있고 index를 통해 해당 데이터에 바로 접근 가능 데이터 삽입, 삭제 가장 마지막 자리에 데이터를 삽입하거나 삭제한다면 빠른 속도가 가능하나, 중간에 데이터를 삽입하거나 삭제할 경우 빈 칸만큼 뒤의 원소를 앞으로 이동시켜야 한다. (위치를 맞춰줘야 함) 따라서 일반적으로 ArrayList 중간에 원소를 삽입하거나 삭제하는 경우가 많다면 비효율적 만약 원소를 맨 뒤에 원소부터 쭉 삭..
-
CS 스터디 - Java & SpringCS 2023. 8. 15. 03:37
#1 ) 자바는 인터프리터 언어인가요? 컴파일 언어인가요? 자바는 2가지 방식을 모두 혼합하여 사용합니다. (하이브리드 언어라고도 함) 자바 컴파일러가 .java 파일을 컴파일을 통해 .class파일(바이트코드)로 만듭니다. (이 파일까진 운영체제 독립적. ) 이후 JVM의 인터프리터가 각 운영체제에 맞게 이진 코드로 변환합니다. (참고로 JVM은 각 운영체제에 맞게 설치되어야 합니다) * 참고로 번거롭더라도 이렇게 하는 이유는 자바의 세일링 포인트가 once compiled, use anywhere라는 것이 모토이기 때문이다. 컴파일 - 인터프리터 조합이기 때문에 다소 시간이 느리더라도 이 과정 덕분에 java라는 언어자체는 운영체제에 독립적이다. 또한 JIT 컴파일 방식도 도입돠고, 예전보다 하드웨어..
-
CS 스터디 - 운영체제 Q&A(1)CS 2023. 8. 10. 23:28
#1 ) 멀티 스레드 방식이 멀티 프로세스 방식에 비해 가지는 장점에 대해 설명해주세요. 멀티 프로세스 방식만으로도 하나 이상의 작업을 수행할 수 있지만, 멀티 프로세스보다 메모리 등 자원을 적게 사용하고, 자원을 어느정도 공유하기 때문에 스레드 간 데이터 주고 받는 통신 비용이 적게 든다는 장점을 가집니다. #2 ) 뮤텍스와 세마포어의 차이에 대해 설명해주세요. 뮤텍스는 오직 하나의 스레드 || 프로세스만 접근할 수 있으며, 락을 획득한 스레드 || 프로세스가 락을 해제해야 합니다. 세마포어는 세마포어 변수만큼의 스레드 || 프로세스가 접근할 수 있으며 현재 수행중이 아닌 프로세스가 세마포어를 해제할 수 있습니다. 두 가지 모두 임계영역에서의 경쟁상태를 제거할 수 있습니다. 경쟁상태 : 2가지 이상의 ..
-
CS 스터디 - 네트워크 Q&A (1)CS 2023. 8. 3. 12:55
4주가량의 스터디 동안 프레젠테이션 방식으로 돌아가면서 CS의 큰 주제에 대해 발표하는 시간을 가졌다. 스터디 모임때마다 각자 문제를 만들어오고 돌아가면서 답변하는 Q&A 방식으로 새롭게 진행중이다. 매주 긴장중... #1 ) HTTP 메소드인 PUT과 PATCH의 차이점에 대해 설명해주세요. - 자원에 모든 상태(필드)에 대한 값을 대입하지 않은 경우 PUT 메소드는 오지 않은 값에 NULL을 대입하여 변경합니다. 반면 PATCH의 경우, 오지 않은 값은 기존 값 그대로 두고 바뀐 부분만 변경합니다. - 요청한 URI에 자원이 존재하지 않는 경우 PUT 메소드는 새롭게 자원을 생성하고, PATCH는 존재하지 않는다는 메시지를 리턴합니다. - 멱등성 관점에서, PUT은 멱등성을 가지고 PATCH는 멱등성..
-
CS 스터디 - 운영체제CS 2023. 7. 21. 03:00
프로세스 메모리에 올라와 실행되고 있는 프로그램 프로그램과 달리 메모리에 주소공간을 가진다. 메모리 영역을 (code,data, heap, stack) 다른 프로세스와 공유하지 않는다. CPU에 의해 실행/처리되며 스케줄링의 대상( = task) 프로세스 내부에는 최소 하나의 Thread(메인스레드) 가지고 있으며, Thread 단위로 스케줄링을 수행한다. Context : 프로세스가 현재 어떤 상태에서 수행 중인지 규명하기 위한 정보 Hardware Context : CPU 수행 상태를 나타낸다. Program Counter : 다음에 실행될 명령어의 주소를 가지고 있다. 다음에 실행할 기계어코드의 위치 지정함 Program Counter, Register 등이 저장하는 값 Process Address..
-
CS 스터디 - 네트워크 이론CS 2023. 7. 5. 03:09
OSI 7계층 & TCP / IP 4계층 모델 OSI 7 계층 ? TCP / IP 4계층 ? [ OSI 7계층 ] - 네트워크 통신이 일어나는 과정을 7단계로 나눈 것 - 통신이 일어나는 과정을 단계별로 파악하기 용이 [ TCP / IP 4계층 ] - 네트워크 전송 시 데이터 표준을 정리한 것이 OSI 7계층이라면, 이 이론을 실제로 사용하는 표준이 TCP/IP 4계층 응용 계층 - 응용 프로세스와 직접 관계하여 응용서비스 수행하는 최종 목적지 - 사용자에게 통신을 위한 서비스 제공 - HTTP : Word Wide Web 위한 데이터 통신의 기초이자 웹 사이트 이용하는데 쓰이는 프로토콜 - FTP : 장치와 장치 간의 파일을 전송하는데 사용되는 표준 통신 프로토콜 - SMTP : 전자메일 전송을 위한 ..
-
CS 스터디 - SpringCS 2023. 6. 20. 02:24
💎 이란 ? 문맥마다 다르게 사용된다. - Spring DI container - Spring framework - Spring Boot, framework 모두 포함한 생태계 자체 💎 Spring 왜 만들었을까? 핵심 컨셉은? "좋은 객체 지향 어플리케이션을 개발할 수 있게 도와주는 프레임워크" 자바 언어 기반의 프레임워크로써, 자바의 가장 큰 특징인 객체 지향 언어로써 가지는 강력한 특징을 살려내는 프레임워크 EJB(Enterprise Java Bean)가 컨테이너 역할 수행. 학습하기 어려워질정도로 복잡 -> 더 경량화되고 간소화된 컨테이너가 필요 -> EJB : 기업환경의 시스템을 구현하기 위한 서버 측 컴포넌트 모델이다. 일반적으로 업무 로직을 가지고 있는 서버 어플리케이션을 EJB라고 한다. ..
-
CS 스터디 - 데이터베이스CS 2023. 6. 14. 04:19
용어 정리 DB : 데이터의 집합 DBMS : 데이터베이스를 운영하고 관리하는 소프트웨어 이미지출처 : https://cocoon1787.tistory.com/769 테이블 : 행과 열로 이루어진 데이터의 집합 키 : 테이블에서 행의 식별자로 이용되는 값 - 후보키 : 유일성(key로 하나의 행 구분 가능) 최소성(최소 개수의 속성들로 구성)만족하는 속성들의 집합 - 기본키 : 후보키 중 선택한 키, 테이블에서 기본키는 오직 1개, Null 및 중복값 불가 - 대체키 : 후보키가 2개이상일 경우 기본키 외 다른 후보키들 - 외래키 : 다른 테이의 데이터를 참조하여 테이블의 관계를 연결하는 키, 참조될 테이블 A의 기본키 == 참조할 테이블 B의 외래키 - 슈퍼키 : 유일성은 만족하나 최소성을 만족하지 못..