Daily

Daily/TIL

[API] API란?

API란? Application Programming Interface(애플리케이션 프로그램 인터페이스)의 약자로, 소프트웨어 응용 프로그램에서 다른 소프트웨어 구성 요소 또는 서비스와 상호작용하기 위한 인터페이스를 제공하는 프로그래밍 기술이다. 즉, API는 응용 소프트웨어를 만드는데 쓰는 매개체나 통신규칙이다. 클라이언트와 서버 사이의 데이터 전송 통신을 위한 규칙이나 룰, 방법이라고도 이해할 수 있다. 예를 들어, 기상청의 소프트웨어 시스템에는 일일 기상 데이터가 들어 있다. 휴대폰의 날씨 앱은 API를 통해 이 시스템과 상호작용하여 휴대폰에 매일 최신 날씨 정보를 표시한다. API를 사용하면 다른 소프트웨어 구성 요소와 상호작용하기 위해 필요한 복잡한 코드 작성을 줄일 수 있으며, 더욱 빠르고 효..

Daily/TIL

[네트워크 기초] OSI 7계층, HTTP란?, IP와 Port 번호

OSI 7계층OSI 7계층은 네트워크 통신이 일어나는 과정을 7단계로 나눈 국제 표준화 기구(ISO)에서 정의한 네트워크 표준 모델으로 1계층(물리 계층)에서 7계층(응용 계층)으로 구성되어 있다.물리층(1계층) 물리 매체를 통하여 비트 스트림을 전송하는데 필요한 기능 제공한다. 2~7계층을 거쳐오면서 생성된 프레임을 전기적인 신호로 변환하여 전송함물리적으로 데이터라는 전기적인 신호를 보내는 계층통신 단위: 비트장비: 광섬유, 전선, 케이블, 무선 LAN 데이터 링크층(2계층) 물리층의 전송 설비를 신뢰할 수 있는 링크로 변환한다.물리계층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한통신의 흐름을 관리함공유기에 공유된 수많은 기기 중 어떤 기기에 데이터를 보내야 하는지를 결정한 홉(노드)에서 ..

Daily/TIL

[JavaScript] 자바스크립트란?

비동기 처리 비동기 처리는 작업이 완료될 때까지 기다리지 않고 잠재적으로 오래 실행되는 작업을 시작하여 해당 작업이 실행되는 동안에도 다른 이벤트에 응답할 수 있게 하는 기술이다. 동시에 여러가지 작업을 처리할 수 있고 기다리는 과정에서 다른 함수를 호출할수도 있다. 콜백 함수 콜백은 태스크가 끝나기 전에 함수가 실행되지 않는 것을 보장한다. 다르게 말하자면 콜백은 현재 태스크가 끝난 직후에 실행될 것이다. 콜백은 비동기 자바스크립트 코드를 작성할 수 있도록 해주고 여러 문제와 에러들로부터 안전하게 지켜준다. 콜백 함수란 파라미터로 일반적인 변수나 값을 전달하는 것이 아닌 함수 자체를 전달하는 것을 말한다. 매개변수에 함수를 전달해 일회용으로 사용하기 때문에 굳이 함수의 이름을 명시할 필요가 없어 보통 ..

Daily/Review

[The Bridge Hackathon] 새로운 경험, 도쿄에서의 해커톤

Hackathon 'The Bridge' 소개 해커톤 'The Bridge'는 한국의 서울여대와 고려대, 일본의 센슈대학, 와세다대학, 케이오 대학이 함께하는 글로벌 해커톤으로 도쿄에서 무박 2일로 진행되었다. (23.02.11 ~ 23.02.12) 해커톤의 목표는 UN의 지속가능한 목표(SDGs) 중 하나를 해결할 수 있는 아이디어를 브레인스토밍한 뒤, 그 아이디어를 통한 서비스를 제작하는 것이었다. 그 외에도 참석자들이 네트워킹 세션을 통해 다른 국가의 학생 개발자들과 연결되고 성장할 수 있도록 하였다. https://gdsc.community.dev/events/details/developer-student-clubs-seoul-womens-university-presents-the-bridge-i..

Daily/교육 서적

알고리즘 문제 해결 전략 1 - CH 08. 동적 계획법(2)

알고리즘 문제 해결 전략을 읽고 (p.225 ~ p.239) CH 08. 동적 계획법 8.4 전통적 최적화 문제들 동적 계획법의 가장 일반적인 사용처는 최적화 문제의 해결이다. (최적화 문제란 여러 개의 가능한 답 중 가장 좋은 답을 찾아내는 문제를 말한다.) 예제: 삼각형 위의 최대 경로 맨 위의 숫자에서 시작하여 아래줄로(바로 아래 숫자 또는 오른쪽 아래 숫자만 가능) 내려가며 숫자를 더할 때 모든 경로 중 숫자의 합을 최대화하는 경로를 구하는 프로그램 아래와 같은 재귀 호출을 통한 완전 탐색을 이용하여 구현할 수 있지만 모든 경로를 다 확인해야 하기 때문에 가로줄이 늘어난다면 계산이 불가능하다. // path1(y, x, sum) = 맨 윗 줄부터 현재 위치(y, x)의 아래/오른쪽 아래로 쭉 내려..

Daily/교육 서적

알고리즘 문제 해결 전략 1 - CH 06. 무식하게 풀기

알고리즘 문제 해결 전략을 읽고 (p.145 ~ p.173) CH 06. 무식하게 풀기 6.1 도입 무식하게 푼다는 말은 컴퓨터의 빠른 계산 능력을 이용해 가능한 경우의 수를 일일이 나열하면서 답을 찾는 방법을 의미한다. 이렇게 가능한 방법을 전부 만들어 보는 알고리즘을 흔히 완전 탐색이라고 부른다. 6.2 재귀 호출과 완전 탐색 재귀 함수란 자신이 수행할 작업을 유사한 형태의 여러 조각으로 쪼갠 뒤 그 중 한 조각을 수행하고, 나머지를 자기 자신을 호출해 실행하는 함수이다. 이 재귀 호출은 완전 탐색을 구현할 유용한 도구이다.어떤 문제를 완전 탐색으로 해결하기 위해 필요한 과정은 다음과 같다. 최대 크기의 입력을 가정했을 때 답의 개수를 계산하고 이들을 모두 시간 안에 생성할 수 있을지 가늠하기 (계산..

Daily/교육 서적

알고리즘 문제 해결 전략 1 - CH 08. 동적 계획법(1)

알고리즘 문제 해결 전략을 읽고 (p.207 ~ p.225) CH 08. 동적 계획법 8.1 도입 동적 계획법은 수학 이론에 근거하는데, 동적 계획법을 사용하는 알고리즘은 처음 주어진 문제르 더 작은 문제들로 나눈 뒤 각 조각의 답을 계산하고, 이 답들로부터 원래 문제에 대한 답을 계산해 낸다. 이는 분할정복과 비슷하다고 생각할 수 있지만 동적 계획법과 분할정복의 차이는 문제를 나누는 방식에 있다. 동적 계획법에서 어떤 부분의 문제가 두 개 이상의 다른 문제를 푸는데 사용될 수 있기 때문에 각 문제의 답을 메모리인 캐시에 저장해 둔다. 이렇게 두 번 이상 계산되는 부분 문제를 중복되는 부분 문제라고 부른다. 동적 계획법의 가장 유명한 예는 이항 계수의 계산이다. 재귀 호출을 통해서 하나의 이항 계수를 계..

Daily/교육 서적

알고리즘 문제 해결 전략 1 - CH 07. 분할정복

알고리즘 문제 해결 전략을 읽고 (p.175 ~ p.205) CH 07. 분할정복 7.1 도입 "분할 정복은 가장 유명한 알고리즘 디자인 패러다임으로, 각개 격파라는 말로 간단히 설명할 수 있습니다." "분할 정복 패러다임을 차용한 알고리즘들은 주어진 문제를 둘 이상의 부분 문제로 나눈 뒤 각 문제에 대한 답을 재귀 호출을 이용해 계산하고, 각 부분 문제의 답으로부터 전체 문제의 답을 계산해 냅니다." 첫 문장을 처음 읽었을 때는 이게 무슨 말인가 싶었는데, 바로 나오는 두 번째 문장을 읽으니 무슨 의미인지 바로 파악할 수 있었다. 전체를 부분으로 나누어 각 부분에 대한 답을 계산한다는 점에서 각개 격파라고 말한 것이었다. 분할 정복을 이용하는 알고리즘들의 구성 요소 문제를 더 작은 문제로 분할하는 과정..

Daily/교육 서적

[서적 기록] 알고리즘 문제 해결 전략1 #3

개관 알고리즘은 주어진 문제를 해결하는 한 가지 방법을 명료하게 써 놓은 것이며, 주관적이거나 모호한 것은 알고리즘이라고 할 수 없다. 가능한 명료하고 모호하지 않은 표현을 위해 사람들은 알고리즘을 대게 의사코드나 그것을 구현한 소스 코드의 형태로 설명한다. 이런 알고리즘을 평가하는 두 가지 큰 기준은 알고리즘이 사용하는 시간과 공간이다. CH 04. 알고리즘의 시간 복잡도 분석 위 개관의 예시를 통해 알고리즘이 명료해야 한다는 것을 알고, 의사코드의 예시를 따로 찾아보면서 알고리즘을 어떻게 작성해야 하는지 확인하였다. 알고리즘을 평가하는 두 가지 기준인 시간(알고리즘의 수행속도)과 공간(메모리 공간)에 대해서 알고 있었지만 다시 한 번 상기하는 기회가 되었고, 뒷장의 알고리즘의 속도를 분석하는 방법과 ..

Daily/교육 서적

[서적 기록] 알고리즘 문제 해결 전략1 #2

CH 03. 코딩과 디버깅에 관하여 1. 코딩의 중요성을 간과하지 말라 이 책에서 프로그래밍 대회에서 어떤 성적을 올리느냐를 가장 직접적으로 결정하는 요인은 알고리즘이나 자료 구조에 대한 지식이 아니라 어떤 문제를 풀 때나 항상 필요한 코딩 능력이라고 한다. "프로그래밍 대회에서 좋은 성적을 올리기 위한 비결은 당장 빨리 코드를 작성하기보다 읽기 쉬운 코드를 작성하는 것입니다." "간결하고 효율적인 프로그램을 작성하는 능력은 프로그래밍 대회에서 얻어 갈 수 있는 가장 큰 소득 중 하나입니다." 이 구문을 읽었을 때 공감이 갔다. 그동안 프로그래밍 대회를 위한 코딩 문제를 풀어보면서 내 나름대로 코드의 스타일이 생기고 설령 다른 사람의 코드를 참고하더라도 내 스타일대로 바꾸는 방법을 배웠던 것 같다. 현재..

jeonge
'Daily' 카테고리의 글 목록