원래 컴퓨터에 관심이 많았고 무언가를 만드는 일을 좋아했던 나에게 프로그래밍이란 컴퓨터를 통해 새로운 것을 만들어 내는 동경의 대상이었다.
조건문을 사용할때는 boolean 타입에 대한 이해가 중요하고 비교연산자가 필요하다
오늘 TIL에 대해서 알았다 OTL에서 울고 있는게 TIL이 분명하다반복문(for, while)에 대해서 배웠지만 사용할 수 없는 나에게 답답함이 엄청난 날이었다
배열(Array) 배열이란 순서가 있는 값이다. 배열에 속해있는 값을 요소(element)라고 부르고 배열의 순서를 인덱스(index)라고 부른다.
자바스크립트 라는 언어는 객체(Object)를 기반으로 한 스크립트 언어라고 한다. 자바스크립트를 이루고 있는 왠만한 것들이 객체의 형태이기 때문에, 이 언어를 잘 다루기 위해선 객체를 잘 이해해야 한다고 한다. 그럼 객
분명히 3일차에 반복문이 어렵다고 한탄을 늘어놓은지가 얼마 되지도 않았는데
Algorithm Basic이라는 알고리즘 문제는 내가 지금까지 배웠던 조건문, 반복문, 배열, 객체를 총체적으로 그리고 필요한 위치에 적절하게 사용해야 했다.
Command Line Interface(CLI)는 Graphic User Interface(GUI)와는 다르게, 마우스와 각종 UI 컴포넌트 대신, 표준 입출력 시스템(Standard I/O)을 통한 입력과 그에 따른 결과를 출력하는 형태이다.컴퓨터의 시작은 GUI가
Scope란 번역해보자면 '범위'라는 뜻을 가지고 있다. 변수에 접근할 수 있는지에 대한 규칙이자 코드의 유효범위라고 볼 수 있다. 즉, 스코프는 변수 접근 규칙에 따른 유효 범위이다.
오늘은 테스트주도개발(TDD)를 공부하고 테스트주도적인 방법을 통한 코딩과 Test Framework라는 조금 특별한 프로그램에서 제공되는 도구들인 mocha, chai의 사용을 페어와 함께 실습했다.
오늘은 기본적으로 보여지는 웹페이지 제작을 위해 필요한 HTML과 CSS를 배웠다.HTML과 CSS는 웹브라우저 상에서 화면에 보여지는 사이트 혹은 웹 앱을 표현하는 도구이다.
오늘부터는 어제 배웠던 html과 css를 이용해서 twitter와 비슷한 화면을 만들어 보는 과제를 앞으로 3일간 하게 된다
오늘은 정말 삽질의 연속이었다.html과 css로 구현되어 있는 버튼들에 기능을 넣는다는게 간단해보였지만 정말 어려웠다.
대망의 마지막날....결과부터 얘기하자면 결국 이름을 기준으로 필터링하는 것은 구현하지 못했다...
오늘부터의 남은 Pre코스 일정은 가장 어렵다는 일정들만 남았는데, 그 시작은 고차함수(higher order function)이다.
아르바이트를 하면서 주말동안 지난주에 공부를 시작한 고차함수에 대한 문제를 풀수 없을 것 같아서 걱정했었는데다행스럽게도 대체공휴일이 월요일에 있어서 수업이 진행되지 않아 겨우 문제들을 풀어낼 수 있었다.
예전에 배열 메소드가 브라우저에서 자체적으로 지원되지 않던 시절에 사람들은 보다 나은 방법으로 배열이나 객체를 다루기 위해 라이브러리, 즉 배열이나 객체를 다루기 위한 도구 모음집을 만들어서 사용했었는데 대표적으로 underscore가 있었다.
오늘 드디어 예전에 못풀었던 알고리즘 문제 2개를 다풀었다.
재귀란 함수가 자기 자신을 호출하는 것을 얘기하는데 일단 여기서부터 무슨 얘기인지 전혀 모르겠었다.
정규학습시간이 끝나고 getElementsByClassName을 구현할 방법을 더 찾아보다가 children을 통해서 className에 접근하는 방법으로 풀어낼 수 있었다.
Tyrion Lannister!!! 시험이 끝날 때까지 나를 괴롭히던 이름이다.
나는 왜 코드스테이츠에 오게 되었을까
드디어 프리코스동안 밀린 블로깅을 마무리했다...(다음부턴 절대 밀리지말고 매일 꾸준히 써야지...)
화살표 함수(Arrow function)는 ES6부터 도입된 새로운 형태이고, 함수 표현식을 축약한 형태로 표시된다.
오늘은 이머시브코스로 넘어오기 위해 봤던 Hiring Assessments를 리뷰하는 시간이었다.개인적으로 내 코드가 부끄러워 페어분께 보여드리기 민망했는데 실제로 그랬다.
자료(Data)란 문자, 숫자, 소리, 그림, 영상, 단어 등의 형태로 된 의미 단위이다. 자료를 의미있게 정리하면 정보가 된다.
노드(Node) 노드(Node) : 크기가 동적인 자료구조로, 자료구조를 구성하는 요소 노드(Node)는 데이터가 담기는 데이터 공간과 다음데이터를 가리키는 주소값(포인터(pointer))이 담기는 포인터공간으로 구성되어 있다.
그래프(Graph)는 연결되어 있는 객체간의 관계를 표현하는 자료구조로 다양한 모델에 적용할 수 있는 유연성 있는 자료구조이다.
알고리즘이란 어떤 일을 하는 절차를 말한다. 컴퓨터에서는 프로그램이 수행할 작업(명령의 집합)이다.
객체지향 프로그래밍이란 프로그램 설계방법론이자 개념의 일종으로 프로그램을 단순히 데이터와 처리 방법으로 나누는 것이 아니라, 프로그램을 수많은 '객체'라는 기본 단위로 나누고 이 객체들의 상호작용으로 서술하는 방식이다
오늘은 OOP와 Prototype Chain에 대해서 배우는 날인데 더 명확하게 알고싶어서 찾다보면 더 원론적인 부분으로 빠지고 명확했던 것 조차 명확해지지 않은 느낌이 드는 내용들이 많아서 우선 지금 명확한 부분만이라도 정리하고자 한다.
오늘은 어제 학습하고 블로깅 했던 OOP의 특성중 상속과 ES6이전에 Class를 흉내내기 위해 사용한 방법인 Pseudoclassical방법과 ES6에 추가된 문법인 class메소드를 직접 실습해봤다.
오늘부터 Toy Problem이 시작되었다 세 판의 가위바위보를 할 동안 낼 수 있는 모든 경우의 수를 return하는 함수를 작성하세요
임의의 string이 주어졌을 때, 문자열 내에서 최초로 반복하지 않는 문자를 return하는 함수를 작성하는 Toy Problem을 시작으로 오늘 하루의 공부를 시작했다.
오늘의 Toy Problemㄴ 특정 배열이 매개변수로 전달되는 배열의 부분집합인지를 판단하는 메소드를 만드는 것이었는데, 코드를 짜는 것 자체는 어렵지 않았지만 this에 대해서 알지 못하면 풀 수 없는 문제였다.
재귀가 문제다...
Solo Day
Bubble sort 방식으로 배열을 인자로 받아 크기 순서대로 정렬된 배열을 반환하는함수를 만드세요.
Asynchronous & Promise1
아직도 재귀는 너무 어렵다... 어제와 오늘은 promise강의에서 배운 것을 바탕으로 실습을 해보는 스프린트를 진행했다.
배열이 주어졌을 때, 이 중 3개의 숫자를 곱하여 나올 수 있는 최대값을 return하는 함수를 작성하세요.
deepEquality두 개의 객체가 주어졌을 떄, 이 두 객체가 deeply equal한지 아닌지를 return하는 함수를 작성하세요
rotatedArraySearch정렬되어 있는 배열 중 일부를 왼쪽 혹은 오른쪽으로 회전시킨 배열이 주어졌을때,어떻게 특정 element를 효율적으로 찾을 수 있을까
powerSet주어진 문자열의 'power set'으로 이루어진 배열을 return하는 함수를 작성하세요
이번 스프린트는 기존에 http모듈로 작성했던 chatterbox server를 express프레임워크를 이용해서 리팩토링해보는 과정이다.
웹사이트를 만드는 방법에는 html과 css를 적용해서 만드는 방법react, vue와 같은 프론트엔드 라이브러리를 사용하는 방법이 있다
오늘은 어제 작성했던 Twittler React의 미흡했던 부분을 더 처리했다 CSS를 조금 더 다듬고 이벤트에 대한 부분을 더 수정했다.
리액트에서 부모 컴포넌트나 자식 컴포넌트 모두 특정 컴포넌트가 어떤 상태인지 알 수 없다.
Youtube API에서 youtube data Api v3를 신청해서 받았다.
Hook은 함수 컴포넌트에서 React state와 생명주기 기능(lifecycle features)을 “연동(hook into)“할 수 있게 해주는 함수이고 class에서는 동작하지 않는다. 대신, class없이 React를 사용할 수 있게 해준다.
리덕스... 어떻게든 테스트는 통과하긴 했는데내가 제대로 이해하고 있는건지도 확신이 들지 않고내가 리덕스를 알고 있는지도 모르겠다..
이번 스프린트는 테스트를 통과할 필요가 없는 개인 포트폴리오 페이지를 제작해보는 스프린트였다! 지나고서 생각했었지만 테스트를 통과할 필요가 없을것 같아서 좋아했었지만 답이없으니까 더 시간이 오래 걸리고 만족이 안되는 것 같다.
오늘은 어제 구현했던 목업을 바탕으로 기능들을 구현해 봤다.컴포넌트 별로 파일을 나눠봤다.아직 보여줄만한 포트폴리오를 제작해보지 않았기때문에 나름 성실하게(?) 작성한 블로그의 글들이라도 보여주고 싶었다.
SQL은 Structured Query Language의 약자로 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이다.
LeanSQL이 일찍 끝난 덕분에 조금 더 여유롭게 Chatterbox Database스프린트로 진입할 수 있었다.
MVC, MVVM 와 같은 단어는 소프트웨어 설계와 관련된 디자인 패턴으로, 소프트웨어 공학에서의 "흔히 사용되는" 설계 패턴을 의미한다.
인증(Authentication) 인증(Authentication)에는 세션(Session)과 암호화(Encryption)이 존재한다
이번 스프린트는 short.ly MVC와 인증(Authentication)이 합쳐진 스프린트이다.
OAuth는 인증을 위한 오픈 스탠다드 프로토콜로, 사용자가 Facebook이나 트위터 같은 인터넷 서비스의 기능을 다른 애플리케이션(데스크톱, 웹, 모바일 등)에서도 사용할 수 있게 한 것이다.
RDS (Relational Database Service) : 아마존웹서비스에서 제공하는 데이터베이스
이번에 시작하는 첫번째 프로젝트는 실패해보면서 전체적인 work flow를 경험해 보기 위한 의미가 더 크다고 한다.
처음프로젝트에서 꼭 경험해봐야 하는 조건으로 알려진 로그인, 로그아웃, 회원가입(CRUD)을 기반으로 한 프로젝트를 진행하기 시작했다. 프로젝트 기간동안의 블로깅은 내가 프로젝트에서 맡은 부분을 중점적으로 작성하려고 한다.
오늘은 거의 기능플로우를 만드는 날이었다. 혼자 했다면 미처 생각하지 못했을 수도 있지만 팀원이 다같이 참여해서 하다보니 부족한 부분이 채워지는 효과가 있었다.
오늘은 로그인페이지의 레이아웃을 작성했다
어제 정규시간이후에 CSS를 조금더 만지고 로고까지 작성한 후에 오늘은 리액트에서 모달창을 구현했다.
오늘은 로그인화면에 소셜로그인을 구현해 봤다.각 개발자 사이트에서 API 키를 발급받아 것 부터 적용하기 까지 많은 시간이 걸렸고 막상 siginin컴포넌트에 넣고나니 버튼을 어떻게 내가 원하는 대로 할 수 있을지도 하나하나 찾아보면서 배워서 적용할 수 있었다.
지난 주말동안 마이페이지의 대략적인 레이아웃을 구현했다.
오늘 진행한 기능구현은 리액트의 생명주기에 대해서 다시 한 번 상기할 수 있는 기회였다
마이페이지의 구현은 거의 끝났지만 오늘은 배포단계에서 마주치게 된 SameSite Issue에 대한 해결법을 찾느라 거의 아무것도 못했다.
마무리와 발표준비를 하면서 SR이 얼마나 중요한 건지 알게 되었다.
확실히 스프린트를 진행하면서 배웠던 기술들을 이번 프로젝트를 하면서 더 주도적으로 사용해 볼 수 있는 기회였고 실제로 문제를 해결해나가는 방법과 능력을 키울 수 있는 기회였음을 느꼈다.
파이널 프로젝트 팀구성이 끝나서 파이널프로젝트를 시작했다
어떤 서비스가 좋을지 오전 내내 회의하고 고민했는데 결국 첫 번째로 나왔던 의견인 와인정보에 대한 서비스를 만들어보기로 했다.시험에서 고치면 틀린다 처음 찍은게 맞다라고 하는 이유를 알 것 같기도하고 ....국내에는 전통주를 제외한 주류는 배송판매를 할 수 없기 때문에
주제를 잡았기 때문에 오늘 부터는 어떤 스택을 사용할지와 와이어프레임, API문서, 데이터베이스 스키마 작성 등 코드를 작성하기 직전에 정해져야 할 것들에 대해서 회의를 진행했다
스키마 같은 경우에는 내가 기존에 작성했던 스키마는 필요없는 Foreign Key가 많이 들어가서 팀원 분들의 의견을 수렴하여 다시 한 번 컴팩트하게 다듬을 수 있었다.
서버가 잘 배포되는지 확인해보는 과정을 담았다.
오늘은 타입스크립트를 통안 기본적인 실행환경을 구성하고 express를 이용해서 라우터를 구성해봤다.