반응형

개발 R.I.P. 93

7.27 Dev.Feedback ( forEach)

자료구조 및 알고리즘은 내가 개발자로 일하기 위해 그리고 정말 뛰어난 실력을 갖기 위한 컴퓨팅적 사고를 갖기 위해 꼭 이해해야만 하는 영역이라 생각한다. 그 중 인접행렬 생성하기 알고리즘을 풀며 forEach 메소드에 대해 다시 생각하는 계기가 생겨 포스팅해본다. 인접행렬 생성하기 알고리즘 먼저 인접행렬 생성하기 알고리즘은 Number 타입의 방향/무향인 간선들의 목록이 담긴 배열을 입력 받아 [ [0, 3, "directed"], [0, 2, "directed"], [1, 3, "directed"], [2, 1, "directed"], ] [ [0, 2, "directed"], [2, 4, "undirected"], [1, 3, "undirected"], [2, 1, "directed"], ] 위의 간..

개발 R.I.P. 2021.07.27

7.26 Dev.Feedback ( 검색 알고리즘 선형검색, 이진검색)

저번주부터 귀에 염증이 심하게 생겨서 제대로 된 공부를 하지 못했다. 포스팅도 당연히... 조금씩 컨디션을 챙겼고, 조금이라도 괜찮을 때마다 정리하려고 한다. 검색 알고리즘 먼저 우리가 어떤 데이터를 다룰 때, 검색은 당연히 필요한 경우이다. 이 데이터들은 무분별하게 나열이 된 경우가 있을 것이고, 혹은 차곡차곡 순서에 맞게 정렬(sorted)된 경우가 있을 것이다. 어떠한 경우든 나열된 데이터 중에서 우리가 원하는 데이터를 찾아내는 것은 매우 중요하다. 선형검색(Linear Search) 나열된 어떤 데이터 구조의 처음부터 검색을 하는 방법이다. 예시를 들어 설명해보면 let arr = [2, 4, 7, 20, 12, 6, 21, 692, 3]; function findNumb(arr) { for (l..

개발 R.I.P. 2021.07.26

7.19 Dev.Feedback ( 객체지향 프로그래밍 )

객체지향 프로그래밍 (Object-oriented programming) 이하 OOP 객체지향 프로그래밍은 컴퓨터 과학에서 절차적 프로그래밍에서 대두되던 단점. 어떤 구체적인 실재적인 정보를 다루지 못하고 추상적인 기능 구현만 가능하게 됐던 단점들을 해결하기 위해 등장한 패러다임이다. 자동차로 예를 들어보면, 객체지향 이전 절차적 프로그래밍에서는 시동을 걸거나 창문을 내리고 기어 변속을 하는 기능에 대한 함수는 만들 수 있었지만 그 자동차의 제조사, 모델명, 그리고 차량의 색깔같은 우리의 눈에서 실재적으로 보이는 부분들을 다룰 수 없었다. OOP에서는 그런 부분들을 전부 다룰 수 있게 해줌과 동시에 사물에 관해 추상적으로 생각하는 것 (세상 어딘가에 있는 자동차)과 구체적으로 (내 자동차) 생각하는 것을..

개발 R.I.P. 2021.07.19

7.17 Dev.Feedback (API, POSTMAN)

REST API Representational state transfer 의 약자로 백엔드와 클라이언트에서 어떤 방식으로 커뮤니케이션을 할지를 결정해놓은 것 RESTful Web services 로도 불린다. 많이 쓰이는 걸로는 GET POST PUT DELETE GET => 이미 존재하는 사용자의 데이터를 읽을 때 사용 POST => 새로운 사용자를 만들 때 사용 PUT => 이미 있는 사용자의 정보를 업데이트할 때 사용 DELETE => 사용자의 정보를 지울 때 사용 Graph QL 을 쓰지 않으면, 거의 대부분 REST API를 쓰기 때문에 꼭 정확히 이해하는 것이 중요하다! GET을 요청할 때 아래 이미지의 end point 이후 ? 가 있으면, query parems이 시작된다. query pa..

개발 R.I.P. 2021.07.17

7.16 Dev.Feedback ( 비동기적 프로그래밍 # B Fetch, Async)

Fetch 실제 코딩을 할 때는 Promise를 직접 생성해서 리턴해주는 코드 보다는 어떤 라이브러리의 함수를 호출해서 리턴 받은 Promise 객체를 사용하는 경우가 더 많다. 그 중 대표적인 상황이 REST API를 호출할 때 사용하는 브라우저 내장 함수인 fetch()이다. fetch() 함수는 API의 URL을 인자로 받고, 미래 시점에 얻게될 API 호출 결과를 Promise 객체로 리턴한다. network latency 때문에 바로 결과값을 얻을 수 없는 상황이므로 이전 포스트에서 설명한 Promise의 사용 목적에 정확히 부합한다. Promise 객체의 then() 메소드는 결과값을 가지고 수행할 로직을 담은 콜백 함수를 인자로 받는다. 그리고 catch() 메서드는 예외 처리 로직을 담은 ..

개발 R.I.P. 2021.07.16

7.12 Dev.Feedback (비동기적 프로그래밍 #A Callback, Promise)

내가 아직 비동기적 프로그래밍, Promise, Async, Fetch에 대해 이해를 하지 못한 것을 발견하고, 다시 정리를 해야겠다는 필요성을 느껴 다시 작성한다. 비동기적 프로그래밍 자바스크립트에는 매우 일찍부터 비동기적 실행 메커니즘이 존재했지만, 자바스크립트로 만드는 소프트웨어가 점점 복잡해짐에 따라 비동기적 프로그래밍에 필요한 장치들이 추가되었다. 자바스크립트의 비동기적 프로그래밍에는 세 가지의 패러다임이 있다. 처음에는 콜백이 있었고, Promise가 그 다음 그리고 마지막은 Async await이다. (특히 최근 문법은 Async await이 중심이 되는 것으로 보인다. 익숙해져야 한다.) 우리가 비동기적 프로그래밍을 공부해야 하는 이유는 사용자의 행동이 대부분의 경우에 비동기적으로 실행되기..

개발 R.I.P. 2021.07.12

7.09 Dev.Feedback (Redux)

Redux Redux는 스토어를 이용한 상태관리 라이브러리이다. Redux is a predictable state container for JavaScript apps. It helps you write applications that behave consistently, run in different environments (client, server, and native), and are easy to test. 공식 홈페이지 상에서 정의하는 리덕스는 상태를 예측 가능하게 만들어주는 JavaScript의 앱이라고 한다. State는 컴포넌트 내에서 관리하는 것이고, React Hook에서는 useState를 통해 관리를 한다. 보통 State는 컴포넌트 내에서만 관리하기 때문에 어떤 자료를 전달하려..

개발 R.I.P. 2021.07.09

7.07 Dev.Feedback (Ajax)

Ajax Ajax는 원래 비동기적 자바스크립트와 XML의 약어이다. Ajax를 통해 서버와 비동기적으로 통신하면 페이지 전체를 새로 고칠 필요 없이 서버에서 데이터를 받아올 수 있다. 이 시스템은 2000년 초반 XMLHttpReques의 도입으로 가능해졌고, 웹 2.0이라 불리기도 했다. Ajax의 핵심개념은 브라우저 자바스크립트에서 HTTP요청을 만들어 서버에 보내고 데이터를 받는다는 것이다. 받는 데이터는 보통 JSON 형식이다. XML로 받을 수도 있지만 JSON이 자바스크립트로 처리하기 훨씬 쉽기에 JSON으로 받는다. 브라우저에서 JSON으로 받은 데이터를 사용한다. Ajax 또한 다른 웹 페이지와 마찬가지로 HTTP위에서 동작하지만, 페이지를 불러오고 렌더링하는 부담이 줄어들어 웹 어플리케이..

개발 R.I.P. 2021.07.07

7.06 Dev.Feedback (프로그래밍 패러다임)

패러다임 프로그래밍을 하는 기초적인 방법을 말한다. 언어에 독립적이며 어떤 프로그래밍 구조를 사용할지, 언제 구조를 사용해야 하는지를 결정하게 해주는 기준이다. 즉, 프로그래머에게 프로그래밍 관점을 제공해준다. 패러다임은 무엇을 해야할지를 제시하기 보다는 추가적인 규칙들을 부과하여 하면 안되는 기준을 제시한다. 순차적 프로그래밍(Sequential Programming), 비구조적 프로그래밍(Non-structured programming) 이름에서 유추할 수 있듯 코드가 순서대로 흘러가는 방식이다. 구조라는 개념이 없어서 goto문을 사용했다. 하지만, 수 많은 goto문의 남용으로 인해 코드 자체에 대한 이해가 어려워지고(순서를 신경써야 하므로 여기저기 왔다 갔다 해야하는) 보수를 해야되는 상황이 벌..

개발 R.I.P. 2021.07.06
반응형