
프로세스(Process)와 쓰레드(Thread)
2023. 3. 29. 17:22
IT knowledge/CS
프로세스(process) *process :과정, 처리 프로세스란 단어 그대로 본다면 과정, 처리라는 뜻을 가지고 있다. 컴퓨터 용어로 쓰이는 관점에서 본다면 프로세스는 프로그램을 실행하면 OS로 부터 실행에 필요한 메모리를 할당 받아 프로세스가 된다. (실행중인 프로그램을 의미) 프로세스가 실행되는 동안 생성-준비-실행-대기-종료의 상태들을 거치는데, 컴퓨터는 여러 일을 처리할 때 프로그램 요소들이 움직이는 일정에 따라 작업 순서를 매기는데 이를 스케줄링이라고도 부른다. 정해진 일정에 따라 작업을 실행하는 것은 컴퓨터의 CPU(중앙처리장치)이다. 프로세스는 프로그램을 수행하는데 필요한 데이터와 메모리 등의 자원, 그리고 하나 이상의 쓰레드로 구성되어 있다. 프로세스의 자원을 이용해서 실제로 작업을 수행..

데이터 정규화
2023. 2. 12. 21:19
IT knowledge/CS
데이터 정규화 정규화는 데이터베이스의 데이터를 구성하는 프로세스입니다. 이 프로세스에는 중복성 및 일치하지 않는 종속성을 제거하여 데이터베이스의 유연성을 높이는 동시에 데이터를 보호하도록 설계된 규칙에 따라 테이블을 만들고 해당 테이블 간의 관계를 설정하는 작업이 포함됩니다. 데이터 베이스 정규화에는 몇가지 규칙이 있다. 제1정규형 제1정규화: 컬럼 하나엔 한 개의 데이터만 저장되는 것 제2정규형 partial dependenct*를 제거한 테이블 *partial dependenct : 하나의 composite promary key에 종속되는 것이 있는 것 promary key : 컬럼 id 값 같은 것이 프라이머리 (행을 서로 구분하기 위해 만든 컬럼) composite promary key : pro..

크롤링(crawling)이란?
2022. 10. 18. 14:30
IT knowledge/CS
크롤링(crawling)이란? 웹사이트(website), 하이퍼링크(hyperlink), 데이터(data), 정보 자원을 자동화된 방법으로 수집, 분류, 저장하는 것. 크롤링을 위해 개발된 소프트웨어를 크롤러(crawler)라 한다. 크롤러는 주어진 인터넷 주소(URL)에 접근하여 관련된 URL을 찾아내고, 찾아진 URL들 속에서 또 다른 하이퍼링크(hyperlink)들을 찾아 분류하고 저장하는 작업을 반복함으로써 여러 웹페이지를 돌아다니며 어떤 데이터가 어디에 있는지 색인(index)을 만들어 데이터베이스(DB)에 저장하는 역할을 한다. 크롤링과 유사 개념으로 소프트웨어를 통해 대상 웹사이트와 같은 데이터 소스에서 데이터 자체를 추출하여 특정 형태로 저장하는 스크래핑(scraping) - 데이터 스크래..

Thread(쓰레드)에 대한 개념 이해하기
2022. 9. 7. 18:07
IT knowledge/CS
먼저, Thread에 대한 심도 있는 이해를 하기 위해선 여러가지 베이스 지식들이 필요하다. Critical Section(크리티컬 섹션) Mutex(뮤텍스) 및 Semaphore(세마포어) CPU의 동작 특성에 대한 이해 태스크란 무엇인가 ? 우리는 자바를 구동하면서 혹은 다른 프로그램들을 구동하면서 항상 이 태스크를 만들고 있습니다. 아주 쉽게 접근하자면 현재 실행중인 우리가 작성한 프로그램이 태스크입니다. 조금 더 원론적으로 접근하자면 우리가 작성한 프로그램이 컴퓨터 메모리(DRAM)으로 로드 되어 운영체제가 이 부분을 해석하여 구동되는 상태를 의미합니다. 자바는 여기서 JVM이라는 중간 인터페이스 하나 더 추가되는 구조입니다. 맥/리눅스: ps -ef, 윈도우: 작업관리자에 보이는 모든 사항들이 ..

SOLID - SRP(단일 책임 원칙)
2022. 7. 24. 18:22
IT knowledge/CS
SOLID란? 객체지향 설계는 긴 세월과 수많은 시행착오를 거치며 5가지 원칙이 정리되었다. 이것은 객체지향 설계의 5원칙이라고 하며, 앞글자를 따서 SOLID라고 한다. SPR(Single Responsibility Principle) : 단일 책임 원칙 SRP(단일 책임 원칙)이란? 객체지향 설계지침 SOLID원칙 중 하나로, 하나의 클래스에 하나의 책임(메소드)만 가져야한다는 원칙이다. SRP 규칙에 맞게 작성하면 가독성이 좋고, 유지보수에 용이하다. OCP(Open Closed Principle) : 개방 폐쇄 원칙 LSP(Liskov Substitution Principle) : 리스코프 치환 원칙 ISP(Interface Segregation Principle) : 인터페이스 분리 원칙 DIP..

데이터베이스(DB)의 종류
2022. 4. 22. 00:09
IT knowledge/CS
데이터베이스(database)란? 서로 관련성을 가지며 중복이 없는 데이터의 집합을 유지하는 것 데이터베이스 관리 시스템 (DBMS : Database Management System) 데이터베이스를 관리하는 시스템 데이터베이스(DB)의 종류 종류 약어 형태 개념 계층형 데이터베이스 HDB(Hierarchical* Database) 트리 구조 각 데이터 요소들은 상하관계를 나타냄 네트워크형 데이터베이스 NDB(Network Database) 그래프 구조 개체와 개체 관계를 그래프 구조로 연결 관계형 데이터베이스 RDB(Relational* Database) 엑셀 구조 개체를 테이블로 사용, 개체들간의 공동 속성을 이용하여 서로 연결하는 독립된 형태의 데이터 객체지향형 데이터베이스 OODB(Object-O..

프론트엔드와 백엔드의 차이
2022. 4. 21. 23:44
IT knowledge/CS
프론트 엔드(Front-end) ─ API → 소통도구 백 엔드(Back-end) 담당 클라이언트 (보여지는것) 서버 (보여지지 않는것) 기능 요청 응답 개념 사용자로부터 다양한 형태를 입력 받아 '백엔드'가 사용할 수 있는 규격을 따라 처리할 책임을 진다. DB분석 및 입출력, API 서버 개발 프로그램 · WEB HTML / CSS / JavaScript · APP iOS - Swift / Objective-C 안드로이드 - JAVA, Kotlin 리눅스 (운영체제) JAVA / Python / R / JSP / SQL

객체지향과 절차지향의 차이
2022. 4. 21. 23:14
IT knowledge/CS
객체지향 절차지향 개념 - 프로그램을 다수의 객체로 만들고, 이들끼리 서로 상호작용 하도록 하는것. - 데이터와 절차를 하나의 덩어리로 묶어서 생각한다. - 객체의 상태는 '데이터'에 의해 결정되고, 동작은 '메소드'에 의해 결정됨 - 절차에 따라 순차적인 처리가 중요시 되는 방식 특징 · 캡슐화 - 데이터와 알고리즘을 하나로 묶어 하나의 캡슐처럼 만드는 것. 이 특징 때문에 데이터와 코드의 형태를 외부에서 알 수 없다. - 코드의 중복을 피할 수 있음. · 상속 상위 클래스의 모든 것을 하위 클래스가 이어 받는 것. (쉽게 클래스 확장 가능) · 다형성 - 상속과 연관된 개념으로, 하나의 객체가 다른 여러 객체로 재구성 되는것. - 효율적인 코드 구성 가능 - 위에서 아래로 코드가 실행되는 Top-Do..