CS 21

R 프로그래밍 기본문법

1. 기본 문법변수 선언R코드 복사x 10 # 할당 연산자 y = 20 # 동등 연산자로도 가능하지만 권장되지 않음출력R코드 복사print(x) # 출력 함수 x # 자동 출력주석R코드 복사# 이 줄은 주석입니다.2. 데이터 구조벡터R코드 복사v c(1, 2, 3, 4) # 벡터 생성 length(v) # 길이 확인 v[2] # 인덱스 접근 (1부터 시작)리스트R코드 복사lst list(name = "Alice", age = 25, scores = c(90, 85, 88)) lst$name # 리스트의 특정 요소 접근행렬R코드 복사m matrix(1:9, nrow = 3, ncol = 3) # 3x3 행렬 생성 m[1, 2] # 특정 위치 접근 (행, 열)데이터 프레임R코드 복사df data.f..

CS 2024.12.29

재귀 (Recursion)

재귀 - 함수를 정의할때 자기 자신을 재참조. 그래프 탐색, 트리,  DP 등 다양한 알고리즘에 사용됨.Factorial def factorial_ex(n) if n == 1: print("factorial ex") return 1 return n * factorial_ex(n-1) # 시간복잡도 O(n)Fibonaccidef fibonacci_ex(n) if n == 1 or n == 2: print("fibonacci ex") return 1 return fibonacci_ex( n -1 ) + fibonacci_ex(n - 2)#시간복잡도 O(2^n) 점화식(recurrence relation) : f(n) = f(n-1)+ f(n-2). 자..

CS 2024.12.22

자료구조 - 비선형

비선형 자료구조?하나의 데이터에 N개이 데이터가 이어지는 구조. 1:N, N:N 구조로 되어있다.계층적 구조를 나태내기에 편리. 그래프?데이터를 포함하는 정점vertex(노드node)과 정점edge을 잇는 간선으로 구성되어 있다.G = (V,E) 1. 무방향 그래프간선에 방향성이 없는 그래프.정점 개수가 n일때 최대 간선의 개수는 n x (n-1) / 2이다. 2. 방향 그래프간선에 방향성이 있는 그래프.정점 개수가 n일때 최대 간선의 개수는 n x (n-1) 이다. 경로 탐색 1. 너비 우선 탐색(BFS)탐색을 시작하는 정점에서 가까운 정점을 먼저 탐색하는 방식.먼저 탐색하는 정점과 인접한 정점을 탐색하면서 큐에 삽입한다.큐에 넣기 전에 이전에 방문했는지 확인 필요. 2. 깊이 우선 탐색(DFS)시작 ..

CS/자료구조 2024.06.21

자료구조 - 빅오표기법, 선형 자료구조

최악 : 빅오 표기법평균 : 빅세타 표기법최선 : 빅오메가 표기법 빅오 표기법?입력 값(n)에 대한 수식에서 최고차항을 기준으로 알고리즘이 수행되는 최악의 시간 복잡도. O(1) : ex)  stack의 push, popO(log N) : ex) binary search 알고리즘, tree 형태 자료구조 탐색. 연산이 한 번 실행될 때 마다 데이터의 크기가 절반 감소하는 알고리즘 (log의 지수는 항상 2)O(N) : ex) 1중 for문 입력값(N)이 증가함에 따라 실행시간도 선형적으로 증가하는 알고리즘O(N log N) : ex) 퀵 / 병합 / 힙 정렬. O(N)의 알고리즘과 O(log N)의 알고리즘이 중첩된 형태O(N^2) : ex) 2중 For 문, 삽입/거품/선택 정렬. O(N)의 알고리즘과..

CS/자료구조 2024.06.21

데이터베이스 - ORM, 트랜잭션, 락, 이상, 정규화

ORM?객체와 관계형 데이터베이스를 매핑하는 도구를 의미.{}객체 ORM 관계형 데이터베이스 SQL문을 사용하지 않고 객체 지향적 코드를 작성할 수 있어서 코드의 가독성을 높이고 개발자 편의성을 증대할 수 있다.대표적인 ORM 프레임워크 :java- 하이퍼네이트. Hibernatepython- 장고. Djangoruby- 레코드. AvtiveRecord트랜잭션?테이터베이스의 상태를 바꾸기 위해 수행하는 작업, 일련의 연산. 트랜잭션의 특징 : ACID원자성(Atomicity) : 트랜잭션이 데이터베이스에 완전히 반영되거나 아예 실행되지 않아야함.일관성(Consistency) : 트랜잭션 수행이 완료된 데이터베이스는 일관성있게 유지되어야 한다.독립성(Isolation) : 수행 중인 트랜잭션에 다른 트..

데이터 베이스 - 스키마, 키, 인덱스

스키마? 데이터 베이스의 전체적인 구조와 제약 조건을 명시한것. 내부 스키마 : 사용자 측면의 데이터베이스 전체구조개념 스키마 : 데이터베이스의 전체 구조외부 스키마 : 물리적 저장장치 측면의 데이터베이스 구조  관계형 데이터 베이스. RDB2차원 테이블에 저장되며 데이터의 구조와 데이터 간 종속성 등을 알 수 있다. 릴레이션 : 관계형 데이터베이스에서 데이터의 개념적 모델테이블 : 릴레이션을 실제로 구현한 개체 NOSQL. Not Only SQL비관계형 데이터 베이스로, 보다 유연한 형태의 데이터베이스이다.대용량 데이터를 조회할 때 속도면에서 유리하고 수평적 확장성이 좋아 확장하기 편하다. KEY?튜플을 구분하기 위한 속성 또는 속성의 집합. key의 특성유일성 : 하나의 키 값으로 튜플을 식별할 수 ..

네트워크 - 정리

1. TCP 송신부와 수신부의 연결을 확인하는 연결형 서비스가상 회선 패킷 교환 방식 사용.(패킷이 전달되는 회선이 정해져 있음)데이터 손실이 없음을 보장. 신뢰성 높음연결 시 3way핸드셰이킹, 해제 시 4way핸드셰이킹 함.신뢰성 보장 방법흐름 제어 : 송-수신부 간 데이터 처리 속도 제어혼잡 제어 : 송신부 데이터 전달 속도와 네트워크 속도 차이 해결오류 제어 : 데이터의 오류 검출 및 재전송2. UDP비연결형 서비스(송-수신부의 연결이 보장되지 않음)데이터그램 패킷 교환 방식 사용(패킷이 서로 다른 회선으로 교환 될 수 있음)데이터의 신뢰성 낮음체크섬 필드를 이용해 최소한의 오류 검출 가능3. HTTP 인터넷에서 데이터를 전송하기 위한 클라-서버 구조의 통신 프로토콜비연결성 : 서버에서 응답을 받..

CS/네트워크 2024.06.20

네트워크 - REST

REST?Representational State Transfer의 약자. HTTP 통신을 활용하기 위해 고안된 아키텍처.클라이언트는 URI로 표현된 자원을 HTTP 메서드를 이용해 CRUD 연산을 할 수 있다.자원을 명시해 연산을 수행하고 상태를 주고 받는 것이다. REST의 특징일관된 인터페이스 : URI를 HTTP메서드로 조작하는 일관된 인터페이스를 사용. HTTP를 따르는 모든 플랫폼에서 REST사용 가능클라이언트-서버 구조 : 클라이언트와 서버 간에 요청-응답의 독립적인 구조를 갖는다. 클라이언트는 서버에 요청을 보내고 응답 대기. 서버는 자원을 가지고 있고 클라이언트의 요청에 응답무상태성 : 서버에서는 클라이언트의 요청을 저장/관리 하지 않는다. 서버는 클라이언트의 요청에 대한 처리와 응답만...

CS/네트워크 2024.06.19

네트워크 - HTTP/S

HTTP?인터넷상에서 데이터를 전송하기 위한 프로토콜. TCP/IP 4계층의 응용 계층이다. HTTP 특징1. 비연결성 -클라이언트에서 요청을 보낸 후 서버로 부터 응답을 받으면 연결을 끊는 것.불특정 다수를 대상으로 하는 서비스에 유리.응답을 기다리지 않기에 자원 사용에 유리하지만 클라이언트를 기억할 수 없다는 단점으로 인해 동일한 클라이언트가 연속 요청을 하면 연결 해제 과정을 반복해 오히려 자원 낭비가 된다.-> 이러한 단점을 보완하기 위해 일정 시간 동안 연결을 유지할 수 있도록 HTTP Keep Alive를 사용한다.마지막 응답 이후 일정 시간 연결을 유지하여 동일 클라이언트의 요청이 오면 연결 과정 생략할 수 있다. 2. 무상태 -서버에서 클라이언트 상태를 저장하지 않는 것.ex) 분식집 고객..

CS/네트워크 2024.06.19

네트워크 - OSI 7계층, TCP/IP, TCP/UDP

OSI 7계층 - 네트워크를 개념적으로 나눈 계층. 네트워크 통신이 이뤄지는 과정을 7단계로 나눈 네트워크 표준 모델TCP/IP 4계층 - 실제 인터넷 통신에 사용되는 계층.OSI 7계층OSI 7계층의 송신부 수신부송신부 - 데이터를 높은 계층 -> 낮은 계층으로 전달.수신부 - 데이터를 낮은 계층 -> 높은 계층으로 전달. 각 계층은 독립적이며 데이터를 송신할 때 각 계층에서 필요한 정보를 추가해 데이터를 가공한다.제어 정보를 담은 헤더, 트레일러(데이터 링크 계층)를 붙이는 데이터 캡슐화 과정이 있다.데이터 캡슐화 하는 이유? - 수신부의 같은 계층에서 데이터 호환성을 높이고 오류 최소화 하기 위함. 수신부에서는 물리 -> 응용 계층을 거치며 헤더와 트레일러를 분석, 제거하는 역캡슐화를 진행한다.각 ..

CS/네트워크 2024.06.19