전체 글
-
[Data Science] 데이터 사이언스에 사용되는 파이썬 패키지 정리(numpy, matplotlib, pandas)💻Programming/Data Science 2024. 9. 28. 04:40
Numpy수치적인 연산에 최적화된 파이썬 도구이다. 개발자는 파이썬 문법을 이용해 사용하지만 내부적으로는 C언어로 엄청난 최적화가 되어있어 더 효율적인 메모리 관리와더 효율적인 연산이 가능하도록 알고리즘 설계가 되어있다. 또한 컴퓨터 하드웨어를 효율적으로 활용한다는 장점이 있다. 예를 들어, 한국의 년도별 gdp가 달러로 표현된 배열을 원화로 환산하고싶다면, Python만 이용for i in range(len(gdp_korea_array)): gdp_korea_array[i] = gdp_korea_array[i] * 1335gdp_korea_array 파이썬에서는 배열 안의 모든 요소에 곱하기를 하고 싶을 때 이렇게 for문을 사용해서 하나하나 넣어주어야 하지만,numpy 이용gdp_korea_ar..
-
[Exchange Student] 미국 비자(J-1) 신청 후에 DS-160 변경🇺🇸Exchange Student 2024. 7. 5. 16:51
DS-160을 작성해본 사람이라면 알겠지만 굉장히 쓸게 많다. 정말 꼼꼼히 확인하고 틀린 것 하나 없이 내려면 3시간까지도 걸릴 수 있다. 일단 나는 DS-160을 모두 작성 후 확인서까지 발급받고, 그걸 이용해 비자 신청 후 비자 인터뷰 날짜까지 잡은 상황에,,,,그 전날 오후 9시에 DS-160에 잘못된 정보를 입력한걸 알게되었다. 다른 사람들의 여러 후기를 찾아본 결과, DS-160은 확인서까지 발급된 이후에는 정보 수정이 불가하다. 또한, 이미 신청된 비자 인터뷰에서 DS-160 번호를 변경 불가능하다. 이러한 상황에서 어떻게 해야할까? 새로운 DS-160을 발급 후, 비자 인터뷰 당일 면접 전에 말씀드리면 된다. 여기까지만 보면 이게 왜 글까지 쓸일인가 싶지만,,,, DS-160 사이트는 정..
-
[Algorithm] BFS, DFS (with Python)💻Programming/Algorithm 2024. 6. 28. 16:03
BFS(Breadth First Search, 너비 우선 탐색)이 알고리즘의 핵심은 큐(Queue)를 사용하는 것노드를 방문하면서 인접한 노드 중 방문하지 않았던 노드의 정보를 큐에 넣어 큐에 먼저 들어있던 노드부터 방문.list 형식을 사용해 큐를 구현할 수도 있지만, list.pop(0)은 시간복잡도가 O(N)이므로 비효율적. -> collections 라이브러리의 deque를 사용. 방문하지 않았던 노드를 큐에 넣을때는 set타입을 사용. DFS(Depth First Search, 깊이 우선 탐색)이 알고리즘의 핵심은 스택(Stack)을 사용하는 것.
-
[Web] 웹 서버(Web Server)와 WAS(Web Application Server)의 차이💻Programming/Web 2024. 4. 16. 22:27
Web server 웹 브라우저 클라이언트로부터 HTTP 요청을 받아 "정적인 컨텐츠(.html, .jpeg, .css 등)"를 제공하는 서버이다. 동적인 컨텐츠의 처리도 일부 할 수 있긴 하다. Web Server의 예 NGINX, APACHE Web Application Server DB 조회나 다양한 로직 처리를 요구하는 "동적 컨텐츠"를 제공하기 위해 만들어진 서버로 "웹 컨테이너" 혹은 "서블릿 컨테이너" 라고도 불린다. 프로그램 코드를 실행하여 "비즈니스 로직"을 수행한다. 또한, 정적 컨텐츠도 처리 가능하다. 하지만 비즈니스 로직을 처리하는데 더 특화되어 있는 서버라고 생각하면 된다. Web Application Server의 예 Tomcat, Jetty, Undertow WAS가 웹 서버..
-
[Algorithm] 재귀함수를 이용한 피보나치 수열 구현💻Programming/Algorithm 2024. 4. 11. 17:34
문제 1) 피보나키 수열을 출력한다. 피보나치 수열이란 앞의 2개의 수를 합하여 다음 숫자가 되는 수열이다. 2) 입력은 피보나치 수열의 총 항의 수 이다. 만약 7이 입력되면 1 1 2 3 5 8 13을 출력하면 된다. 메모이제이션을 사용하지 않은 구현 import java.util.Scanner; public class Section7_4_Ver1 { public static int DFS(int n) { if (n == 1 || n == 2) return 1; else return DFS(n - 2) + DFS(n - 1); } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scann..
-
[Network/HTTP] Rest API, Restful API, HTTP MethodNetwork 2024. 4. 11. 15:43
REST API REST를 기반으로 만들어진 API REST REST는 Representational State Transfer 의 약자로 소프트웨어 프로그램 아키텍처의 한 형식이다. 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미한다. 월드 와이드 웹(WWW)와 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 개발 아키텍처의 한 형식이다. REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이다. RESTful API를 만들어야 하는 이유 Client Side를 정형화된 플랫폼이 아닌 모바일, pc, application 등 플랫폼에 제약을 두지 않는 것을 목표로 했기 때문이다. 과거에는 pc웹페이지,..
-
[Network/HTTP] HTTP란? HTTP의 동작 과정Network/HTTP 2024. 4. 10. 15:08
HTTP(HyperText Transfer Protocol)란 텍스트 기반의 통신 규약으로 인터넷에서 데이터를 주고받을 수 있는 프로토콜이다. 이렇게 규약을 정해두었기 때문에 모든 프로그램이 이 규약에 맞춰 개발해서 서로 정보를 교환할 수 있게 되었다. HTTP의 특징 1. 클라이언트 서버 구조 Request Response의 구조 클라이언트는 서버에 요청을 보내고, 서버가 요청에 대한 처리 후 응답한다. 클라이언트(UI)와 서버(데이터접근,, 비즈니스로직 처리)를 분리하는 것이 굉장히 중요하다. -> 클라이언트와 서버가 "독립적으로" 집중 가능. 2. 무상태 프로토콜(Stateless) 서버가 클라이언트의 상태를 보존하지 않는다. 장점: 서버의 확장성이 높음(스케일 아웃) 현재는 HTTP 지속 연결(P..