본문 바로가기
  • 시 쓰는 개발자

CS 개념 (~24년 7월)49

LINUX란 ? LINUX 리눅스는 본질적으로 하드웨어와 여러 자원들을 관리해주는 "운영체제"이다. 리눅스는 유닉스(UNIX)라는 운영체제를 기반으로 만들어졌는데, 유닉스보다 명령어 등을 좀 더 쉽게 바꾸어 사용의 편리성을 높였다. 리눅스는 OS임에도 불구하고 오픈소스라서, 누구나 소스코드를 이용/수정/재배포 할 수 있다. 그래서 사용자에 맞게, 그리고 용도에 맞게 자유롭게 수정해 적용할 수 있다. 이러한 맥락에서 우분투가 나왔다고 할 수 있다. 현재는 가정용도 포함해 웹 서버, 클라우드 컴퓨팅, 임베디드 등 여러 분야에서 사용되고 있다. LINUX의 특징 오픈소스 : 오픈소스라는 것이 어쩌면 가장 큰 특징이라고 생각한다. 오픈소스이기 때문에 사람들이 여러 분야에서 자유롭게 활용하고, 각자 상황에 맞게 수정하며, 버그를.. 2023. 11. 15.
SQL과 NoSQL의 차이 프로젝트를 하다보면 SQL은 뭐니까~ NOSQL은 뭐라서 ~~ .... 이런 이야기를 많이 하는데 속으로 뭔지 몰라서 멍하니 있었다. 이번 기회에 제대로 잡아보자.  SQLNoSQL관계관계형 DB (RDB)비관계형 DB스키마SQL을 사용, 스키마를 미리 정해둔다.구조화되지 않은 데이터를 위한 동적 스키마확장방식수직적 확장 ( Scale Up )수평적 확장  ( Scale Out ) 데이터 형식테이블 기반문서, key-value, 그래프 기반유지비용, DB복잡도높다낮다DB예시MySQL, MariaDB, OracleMongoDB, Redis SQL, NoSQL 차이 테이블간의 관계 여부SQL : 테이블이 구성되고 테이블은 특정 구조를 가지며 테이블끼리 연결된다. 스키마에 맞춘 데이터 관리에 유용하다. 그리고.. 2023. 11. 9.
데이터 통신 정리 (3) - Internet, Mobile, Cellular, WIFI (학교 수업 내용을 정리한 글입니다.) 네트워크의 예시 Connectinless WAN ARPANET NSFNET INTERNET Connection-Oriented WAN X.25 Frame Relay ATM Connectinless LAN Ethernet Wireless LANs Connectinless PAN RFID Internet Architecture 이전에 개별적 Network로 존재했던 전화망, Tv망 등이 통합됨 여러 Network들이 계층적 구조를 가짐 Backbone : 중추적인 Network를 의미. Backbone에 작은 Network들이 붙어있음. IXP : Network 연결 장소. Switch들이 모여있음. Peering : ISP간 대등한 관계를 표현. 비용이 들지 않음. .. 2023. 10. 9.
데이터 통신 정리 (2) - Service, Protocol, Service의 분류(COC, CLS), OSI, TCP/IP (학교 수업 내용을 정리한 글입니다.) Network Software 디자인 복잡도를 줄이기 위해 분할정복 접근을 활용해 layer를 쌓은 구조이다. → Hierachy 구조 하위 layer는 상위 layer에 서비스를 제공하여 새로운 가상 머신을 만들어낸다. 하위 layer 의 기술적인 디테일을 상위 layer에 숨긴다. → 추상화 용어 정리 Service : Layer가 하는 일을 정의. 무엇을(what) 해야하는지에 대해 내용이다. Interface : 서비스를 제공하는 장소. 수직적으로 서비스에 어떻게(how) 접근하는지 알려준다. Protocol : agreement, rules, grammer 같은 맥락이다. layer들 사이에서 통신이 어떻게 진행되는지에 대한 약속이다. 수평적으로 서비스를 .. 2023. 9. 28.
데이터 통신 정리 (1) - 인터넷 소프트웨어 구조, 네트워크 분류 (학교 수업 내용을 정리한 글입니다.) Computer Network의 정의 single technology에 의해 자발적인(autonomous) 컴퓨터들의 상호연결된 묶음이다. 많은 터미널이 mainframe에 연결되어 있는 것은 터미널들이 autonomous하지 않기에 Computer Network가 아니다. 같은 네트워크의 autonomous 기기들은 single technology로 연결되어 있기 때문에 소통이 가능하다. 분산 시스템(Distributed system)과의 차이는? 여기서 말하는 분산 시스템은 클라우드 컴퓨팅이나 WEB 등이 있다. 독립적인 컴퓨터들은 single oherent system으로 묶여 있어서 각각의 컴퓨터를 분류할 수가 없다. 각 컴퓨터들의 존재가 invisible,.. 2023. 9. 27.
docker에 대하여 상당히 러프하게 작성해놓음..!! 도커의 흐름 이미지를 내가 docker hub에서 pull로 받았음. 그럼 그 이미지는 나의 로컬 도커에 들어감. 그 이미지 안에는 레디스 환경설정이 들어있음. 그 환경 자체를 나한테 넘겨준것 이미지를 실행시키면 이미지가 컨테이너를 만들어줌. (여러개의 컨테이너 만들기도 가능) 도커를 실행시킬 땐 docker -- 이런식으로 명령어를 치기 때문에 명령어를 치는 시점의 주소가 어딘지는 상관 없음 redis를 직접 까는게 아니고 도커허브에서 redis 이미지를 받고, 이미지 받아서 컨테이너 실행시키고, 컨테이너 들어가서 환경설정(이름 비밀번호 뭐 이런거)을 새로 설정해주고, 그걸 다시 이미지화 시켜서 내가 쓰는 것임. (ex. MYSQL같은 것도 이미지 받아서 컨테이너 만들.. 2023. 9. 5.
프레임워크와 라이브러리의 차이 프레임워크(Framework)와 라이브러리(Library)는 목적과 동작 방식에서 차이가 있다. 프레임워크 프레임워크는 특정한 문제를 해결하기 위해 필요한 구성 요소들을 제공하는 일종의 뼈대이다. 개발자가 애플리케이션의 기본 구조와 흐름을 결정하고, 프레임워크에서 제공하는 규칙과 템플릿을 따르며, 비즈니스 로직을 작성하는 방식이다. 프레임워크는 일정한 규칙에 따라 개발을 진행하므로, 일관성 있는 코드를 작성하고, 생산성을 높이는 데 도움이 된다. 대표적인 프레임워크로는 Spring, Django, Ruby on Rails 등이 있다. // 즉, 프레임워크는 애플리케이션 개발을 위한 뼈대를 제공하고, 개발자가 규칙과 템플릿을 따라 애플리케이션을 구현하는 방식이다. 라이브러리 라이브러리는 개발자가 필요에 따.. 2023. 2. 18.
github로 협업하기 (초보자용 AtoZ) "깃허브로 협업한다"라는 말은 자주 듣지만 정확히 어떻게 이루어지는지 잘 모르는 경우가 많고 실제로 해도 깃허브 기능을 제대로 쓰지 못하는 경우도 많다. 팀프로젝트를 할때마다 깃허브는 항상 새로웠던 경험이 있어서... 이제는 그러지 않기 위해 정리를 해보려고 한다. 협업을 위한 repository를 github에 만든다. 이 repository가 바로 우리가 코드를 올리는 장소인 것이다. 이때, 만약 웹서비스를 만든다고 하면 FE와 BE가 있을텐데 이 둘을 나누느냐 마느냐도 선택해야한다. 결론부터 이야기하면 FE레포와 BE레포를 따로 파는 것이 좋다. 만약 하나의 레포에 만든다고 하면 FE/BE 폴더를 각각 따로 만들어서 해주면 되는데 이때 문제가 있다. 먼저, branch별로 기능을 관리하기가 어렵다... 2023. 2. 18.
클라이언트와 서버의 차이점 클라이언트와 서버는 컴퓨터 네트워크에서 중요한 역할을 하는 요소입니다. 이들의 차이점을 러프하게 정리해보았습니다. 클라이언트 서버 역할 정보를 요청하고 처리하기 위한 프로그램 요청된 정보를 제공하고 저장하는 컴퓨터 컴퓨터 종류 일반적으로 클라이언트는 개인용 컴퓨터나 스마트폰, 태블릿과 같은 작은 규모의 컴퓨터 서버는 대규모의 컴퓨터 또는 컴퓨터 클러스터일 수 있다. 데이터 저장 일반적으로 자신의 로컬 컴퓨터나 스마트폰 등에 정보를 저장 대개 중앙 데이터베이스에 정보를 저장 네트워크 연결 클라이언트는 서버에 요청을 보내기 위해 인터넷 또는 내부 네트워크와 같은 연결을 사용 클라이언트의 요청을 받아들이고, 응답을 다시 클라이언트에게 전송 보안 클라이언트는 서버에 연결하고 자신의 정보를 보호하기 위한 간단한 .. 2023. 2. 18.
반응형