CS지식
-
CS지식1 - 컴퓨터 그림의 큰그림CS지식 2024. 11. 9. 09:39
1. 원리를 모르는 개발자는 뛰어난 개발자가 아니다.1.1. 일단 작동만 하는 코드 VS 제대로 작동하는 코드프로그램의 실행 원리에 대한 이해를 생략한 채 '일단 작동만 하도록 만드는 것'과 프로그램의 실행원리를 이해하며 '제대로 작동하게 만드는 것' 둘 중 더 쉬운 것은 무엇일까? 언뜻 보기에는 '일단 작동만 하도록 만드는 것'이 더 쉬운 것처럼 보일수 있다. 하지만 개발된 프로그램을 사용하는 사람들이 생기고 프로그램의 유지보수까지 고려해야 할 시기가 되면, '일단 작동만 하도록 만든 프로그램'이 사실은 겉보기에만 작동하는 것처럼 보였을 뿐이었다는 사실을 깨닫게 된다. 언제든 개발자가 간과했던 지점이 발견될 수 있고, 때론 사용자들이 개발자의 의도와는 전혀다른 방향으로 프로그램을 사용할 수 있기 때문이..
-
자료구조 - 트리,이진 검색트리(BST)CS지식/자료구조 2024. 9. 23. 14:02
1. Tree 소개 1.1. Tree자료구조란 무엇일까? tree는 linked list처럼 노드로 이루어진 데이터 구조이다. 그렇지만 노드들 사이에 부모-자식 관계가 있다. 결과적으로 가지(branch)를 가지게된다. 그러니까 한 노드는 다른 노드로 연결되어 있는데 2개나 3개 10개 아니면 0개가 될 수도 있다. 그렇게 되면 노드가 branch를 가지는 구조가 되는데, 그래서 이름을 tree라고 한다. 가지를 따라가면 어느 지점에서 나뉘게 되고, 그 가지는 계속해서 나뉠 수 있다. 그러면 원래 줄기에서 뻗어나온 수많은 작은 가지들이 남게된다.보통 다이어그램을 보게되면 root노드를 기준으로 위에서 아래로 내려오는 경우가 많다. list는 선형구조이다. 한가지가 있고, 그 다음에 하나, 그다음에 하..
-
검색 알고리즘1- 선형검색, 이진검색CS지식/알고리즘 2024. 9. 10. 11:59
검색 알고리즘경우1) 문자열이 있는데 해당 문자열에 포함된 다른 문자열이 있는지 확인을 하는 경우 경우2) 웹 사이트에 사람들이 가입하고 사용자명을 추가할 수 있게 해서, 사람들이 사용자명(username)과 비밀번호를 입력하고 회원가입 하게는 경우 username이 이미 사용중인 것인지 알려주어야 한다.let username = [ "Sadye", "Willette", "Nikolos", "Noel", "Sascha", "Brunhilda", "Evie", "Evered", "Kennie", "Ashlan", "Sophia", "Cecilio", "Josselyn", "Florrie", "Angela", "Ragnar","Robert", "Ennis", "Ephrayim" ] 데이터베이스가 없다고 가정..
-
네트워크3 - 네트워트 데이터 전송과정, DNS, 와이어샤크CS지식/네트워크 2024. 7. 16. 12:43
1.내 컴퓨터 ➡️ 다른 컴퓨터로 데이터가 전송되는 전체 과정1.1. 클라이언트 컴퓨터에서 출발 목적지 ip를 알고 있는 이유는 다음과 같다. 여기서 다른 컴퓨터를 naver 서버라고 가정하면, naver의 서버 컴퓨터를 알고 있는 이유는 naver의 도메인을 를 DNS Resolver의 변환을 이용해서 naver 서버의 ip를 알 수 있기때문이다. 하지만 다른 컴퓨터에 보낼 프레임 데이터를 보낼때 목적지의 MAC 주소를 알기는 어려움으로 일단 해당 컴퓨터가 속한 네트워크를 형성하는 라우터의 MAC주소를 목적지로 설정해 데이터를 전송한다. 그러면 해당 데이터가 바로 naver 서버 커퓨터로 가는 것이 아니라 일단 MAC주소에 해당하는 라우터로 간다. 1.2. 네이버 서버 MAC 주소에 도달하는 과정 라..
-
네트워크2 - OSI 7 Layer(전송계층, 응용계층, 총정리)CS지식/네트워크 2024. 7. 13. 15:00
1. 전송계층(L4,Transport)전송계층의 대표적인 프로토콜에는 TCP(Transmission ControlProtocol)과 UDP(User Datagram Protocol)이있다. 1.2. Port(포트)포트의 역할프로세스 식별 : 각 네트워크 연결에서 종종 여러 개의 프로세스 또는 애플리케이션이 동시에 통신을 수행할 수 있다. 포트 번호는 IP 주소와 함께 사용되어 각 데이터 패킷(네이트워크 계층에서 전송된다.)이 정확한 대상 애플리케이션으로 전달 될수 있도록한다.이때 사용되는 port는 주소로써의 기능이 크고 구체적으로 처리가되는 곳은 응용계층이다.멀티태스킹 : 단일 기기에서 다수의 네트워크 서비스가 동시에 실행될 때, 각 서비스는 고유한 포트 번호를 할당받아 외부와의 통신을 관리한다. 예..
-
네트워크 1 - OSI 7 Layer(물리계층,데이터 링크 계층, 네트워크 계층)CS지식/네트워크 2024. 7. 13. 13:20
1.물리 계층(L1, Physical) 1.1. LAN선, 전기신호 LAN선을 통해서 전기신호를 주고 받는다. 컴퓨터가 위과 같은 전기 신호 파장의 높낮이를 구분해서 신호의 파장이 높으면 1, 낮으면 0으로 구분한다. 1.2. LAN 카드LAN선이 전기신호를 받으면 이 신호를 구별해서 0,1로 바꾸는 작업을하는 하드웨어 장치는 LAN카드이다. 반대로 컴퓨터에 저장되어 있는 0,1을 전기신호로 바꿔준다. 물리계층에서 하는 일은 컴퓨터에 0,1로 저장되어 있는 데이터들을 전자신호로 바꾸어서 다른 컴퓨터에게 전송하는 것이다. 1.3. Parity bit 패리티 비트데이터 전송 과정에서 오류를 검출하기 위해 추가적으로 삽입되는 비트이다. 데이터의 비트를 모두 합산하여 그 합이 홀수가 되도록 하거나 짝수가 ..
-
운영체제1 - 운영체제 소개(기본개념, 발전목적,기능)CS지식/운영체제 2024. 7. 11. 18:05
1. 운영체제의 개념1.1. 운영체제의 구성요소소프트웨어 - 컴퓨터가 기능을 수행하는데 필요한 모든 프로그램을 의미한다. 시스템 소프트웨어, 유틸리티, 응용 프로그램 등으로 구성된다.시스템 소프트웨어 : 컴퓨터 자원을 관리하고 응용프로그램을 실행을 지원하여 컴퓨터를 제어하는 프로그램이다. 운영체제를 비롯해 장치 드라이버 등으로 구성된다. 유틸리티 : 응용 프로그램보다 작지만 컴퓨터의 여러 처리 과정을 보조하여 시스템을 유지하고 성능을 개선하는 프로그램으로, 운영체제를 돕는 역할을 하며 필요에 따라 사용자나 운영체제가 메모리 상주 프로그램으로 설치하기도 한다. 응용 프로그램 : 특정 작업을 수행하려는 목적, 즉 어떤 문제를 해결하려고 사용자나 전문가가 만든 프로그램이다. 웹브라우저, 워드프로세서, 게임, ..
-
함수형 프로그램밍(FP) - 더 좋은 액션 만들기1(설계고민, 암묵적 입출력 줄이기)CS지식/함수형 프로그래밍 2024. 3. 27. 15:31
더 좋은 액션 만들기 1 비지니스 요구 사항과 설계 고민 하기 요구 사항에 맞춰 더 나은 추상화 단계 선택 이전 게시물에서 액션에서 계산으로 리팩토링하는 과정은 단순하고 기계적이었다. 기계적인 리팩토링이 항상 최선의 구조를 만들어주는 것은 아니다. 좋은 구조를 만들기 위해서는 더 많은 고민이 필요하다. 📑비즈니스 요구사항 "합계 금액과 제품 가격에 대한 무료 배송 여부가 아니고 주문 결과가 무료배송인지 확인해야 한다." 원래코드 function getsFreeShipping(total, itemPrice){ //total - 현재 총액, //itemPrice - 상품을 넣었을때 무료배송이되는지 여부를 알고 싶은 대상 return itemPrice + total >= 20; } getsFreeShippin..