오늘부터 새 팀이 편성되었다.새로운 팀과 팀원들을 소개하는 웹사이트를 만드는 프로젝트를 진행한다.오전에 깃 관련 특강을 진행해서 참석했는데, 사실 기억이 잘 나질 않는다. 버전관리에 용이하고 협업에서도 도움이 많이 된다고하니 내일부터 공부해야겠다.우리 팀의 이름은 Te
오늘은 팀소개 페이지 만들기 프로젝트 2일차이다. 튜터님이 오전에 서면피드백을 작성해주셨고,직접 우리 팀으로 오셔서 대면 피드백도 주셨다.api명세서에 URL을 더 구체적으로 적어야된다고 말씀 해주시고,와이어프레임에 댓글 수정기능도 추가하면 좋겠다고하셨다.또 역할분담도
오늘은 팀프젝3일차다.사실 오전에 뭘 했는지 기억이 나질 않는다. 왜냐하면 오늘 팀장이 프로젝트를 포기하고 조를 떠나셨기 때문이다!허허..충격으로 팀장이 나간다고 알게된 전 기억이 사라졌다.암튼 5명에서 2명이 되었다. 괜찮다. 남은 팀원분은 그래도 떠날 마음은 없어보
오늘도 어김없이 찾아온 아침.. 오늘은 뭔가 무척 일어나기 싫었다. 어제 자기전까지 인프런에서 git 강의를 보다 잠들었는데.. 분명 봤는데 기억이 잘 안난다. 오늘은 TIL(4)에서 했던걸 이어서, 개인페이지에 멤버 데이터들을 mongodb에서 가져와서 클라이언트쪽
오늘은 기다리고 기다리던 금요일.. 대망의 프로젝트 마감일이다.. 오전 11시까지 일단 기본적인 기능작동영상을 찍어서 제출해야한다. 9시30분쯤에 기능작동에 이상이 없는지 체크하고 팀원분이 영상을 제출하였다.그리고나서 2시에 과제에 대해 발표하는 시간이 있다.팀원분과
자바스크립트의 특징 객체지향적이다. 동적 타이핑 언어이다. 비동기 처리가 가능하다. 클라이언트 및 서버에서도 사용 가능하다. 변수 변수 이름 : 저장된 값의 고유 이름 변수 값 : 변수에 저장된 값 변수 할당 : 변수에 값을 저장하는 행위 변수 선언 : 변수를 사용하
강의 1주차를 마치고 숙제로 프로그래머스에서 알고리즘을 풀었다.솔직히 처음엔 어버버 하면서 이것저것 해봤지만 정말 이해가 안되었다.일단 대소문자를 구별하지 않는다니까 통일을 시켜야할것 같다. 혼자 힘으로 해보려고 노력했지만, 정말 갈피가 안잡히고 이상한 코드들만 쓰는것
오늘 강의를 2주차를 다 들었다. 자바스크립트 문법의 흐름을 대강 익히고, 2회독, 3회독까지 하려고 1회독은 대충 훑었다.솔직히 너무 모르겠다.. 그래도 오늘 배운걸 요약해보려 한다.콘솔창에 20이 출력되는 모습을 볼 수 있다.변수안에 함수를 할당하면 사용도 되게 간
오늘은 5주차까지 1회독을 마쳤다. 빠르게 훑어본거라서 아직 잘 모르겠다.그리고난뒤 오늘은 자바스크립트 예제를 좀 풀어보았다.요건 좀 많이 쉬웠다. length 속성을 사용해서 문자열길이를 리턴해주면된다.slice 메서드 사용방법이 기억이 나질 않아서 mdn문서를 참고
일단 처음으로 프론트쪽을 먼저 건드렸다.기존에 flask랑 mongodb를 사용해서 만들었던 영화 사이트에서 영화 카드랑, 버튼을 가져다 쓰기로 했다. 대충 뼈대를 잡아주었고, css도 기존 사이트에것을 가져오고 약간만 손봤다.하나의 페이지로 영화 리스트들을 카드에 담
어제 만들었던 사이트에 부트스트랩을 빼고 css작업을 했다. 영화카드 html골격은 약간 손봐서 그대로 쓰기로 했다.일단 첫번째로 손본것이 카드의 사이즈를 줄이고, 나열하는 작업을 했다.보시다시피.. 카드가 지 맘대로 놀기 때문에 .. 카드 class는 col로 입력되
완성사진 기존에 검색창과, 검색버튼을 묶고 있던 상위div(input-group) 안에 카테고리들을 nav테그로 각각 div영역을 주어서 삽입했다.사이즈와, 폰트 조정, 색, 여백, 어.. 등등 css를 지정해줬다.이제 카테고리를 클릭하면 해당 카테고리와 맞는 영화들
개인과제가 지금까지 만들었던 영화사이트이고, 이제 팀 프로젝트로 하나의 대표작을 골라서영화 클릭시 상세페이지로 넘어가는 기능을 추가해야한다. 그리고 리뷰댓글 남기는 기능도..아.. 동네 뒷산을 오르니... 에베레스트산을 오르라는것 같다..프로젝트 제출일까지.. 주말끼고
어제 만든 상세페이지에 기능을 구현해야한다.. 일단 메인페이지의 카테고리와 검색기능은 살릴거니까 그냥 서브페이지도 메인페이지의 js파일에 연결하면 되는거 아닌가!?라고 생각했지만! 역시 세상 쉬운게 하나 없ㄷr . . . 메인페이지에서 html양식을 가져왔다지만.. 카
오늘은 footer 테그 사용해서 사이트 맨 밑에 나 포함 팀원들의 깃헙 프로필로 넘어가는 버튼을 추가했다.이렇게 코드를 먼저 짜보았는데 .. 너무 너무 비효율적이고 길다고 생각이 들었따.. 그래서 리팩토링에 대해서 좀 찾아보았따. 그렇다 .. 사실 뭐라는지 모르겠다.
어제 살짝 리팩토링 한 깃헙 프로필 넘겨주는 코드를 보다가.. 또 비효율적이라는 생각이 들었다. 메인페이지와 서브페이지 둘다똑같은 로직의 코드를 각각 넣다보니.. 그런것 같았다.그래서 import, export를 사용해서 모듈화 하는 작업을 해보았다. 기존코드를 쪼개서
팀과제는 이제 다 완성이 되었고.. 깃허브에 배포를 해서 로컬이 아닌 다른 사람들도 사이트에 접속을 할 수 있게 만들 수 있다고 들었다. 해당하는 레포의 설정에 들어가서 pages 카테고리에 있는 branch를 main으로 바꿔주라고 한다.원래 NONE으로 나와있는데
오늘은 예제문제를 풀어보았따. 문제 1. 자바스크립트의 동적 타이핑이란 무엇을 의미하는가요? 모든 변수 타입이 동일하다는 것 변수의 타입이 런타임 시점에 결정된다는 것 ♠︎ 변수의 타입이 프로그램이 실행되는 동안에 변경될 수 없다는 것 변수를 선언할 때 반드시 타입
HTTP는 프로토콜(Protocol) 통신규약 중 하나이다. 통신규약은 컴퓨터끼리 데이터를 주고 받을때 정해둔 약속을 의미한다.브라우저에서 서버로 url등의 정보로 요청(Request)을 보낸다. 서버는 요청으로 받은 정보와 동일한 데이터를 찾고
아 .. 노드강의 봐도 모르겠당.. .. . . . .전에 pyhton flask 사용해서 사이트 만들었을때 썼던 pip는파이썬 패키지 다운할때 사용하는거란걸 첨 알았당.. 노드에서는 npm 이란게 있다..패키지들을 손쉽게 다룰 수 있는 이런 툴들이 패키지 매니저라고
이 모듈은 효자다. . 저장하고 서버 종료 후 다시 서버를 키는게 너무 비효율적이라 느껴져서 찾다보니 알게된...너란...것....node전용 liveServer 익스텐션이라 생각하면 될것 같다. \-g는 글로벌이란 뜻으로 현재 프로젝트가 아닌 모든 프로젝트에서 사용
와아~ 너무 너무 ~ 재밌겠당~일단 순서를.. 정했다1\. Create (생성) 기능 구현2\. Read (조회) 기능 구현3\. Update (수정) 기능 구현4\. Delete (삭제) 기능 구현app.js 파일을 만들어줬다.mongodb를 연결해주는 코드는 sch
공부 요약 Node.js는 프로그래밍 언어? 아니다. Node.js는 JavaScript를 브라우저 없이도 실행 될 수 있게 해주는 하나의 플랫폼이다. npm은 Node.js같은 프로그램? 이것도 아니다. npm은 Node.js에서 외장 라이브러리를 쉽게 사용하기
mongoose의 virtuals는 데이터 모델의 정의된 필드가 아니지만, 모델 인스턴승서 접근할 수 있는 가상 속성이다. 실제로 mongoose 스키마에 추가로 정의되며,실제 데이터베이스에는 저장이 되지 않고 동적으로 계산된다. 가상 속성은 필드 값을 변환하거나여러
Sequelize는 Node.js에서 사용되는 ORM(Object-Relational Mapping) 라이브러리이다.Sequelize를 사용하여 데이터베이스를 조작하고 쿼리를 실행하는 것이 편해진다.기존에 mongoose를 사용했을때는 스키마 폴더만 따로 만들었지만,
해당 명령어를 터미널에 입력하면 Migrations, Models 폴더에 1개의 파일이 생성되었고,sequelize model:generate에서 --attributes에 입력한 Column 속성을 바탕으로 파일들이 정의된 것으로 확인할 수 있.마이그레이션으로 만든 테
Op.gt 초과Op.gte 이상Op.lt 미만Op.lte 이하Op.ne 같지 않음Op.or 또는Op.in 배열 요소 중 하나Op.notIn 배열 요소와 모두 다름위와 같은 연산자들을 사용해서 복잡한 비교 연산을 쉽게 해낼 수 있다.
문법오류를 잡아준다!어디가 문젠지 알려준다!eslint는 나한테 궁금한게 참 많다.나는 이렇게 했다.To check syntax and find problemsCommonJS (require/exports)None of theseNoNodeJavaScriptNpm세팅이
타입 T의 모든 속성을 선택적으로 만듬.이를 통해 기존 타입의 일부 속성만 제공하는 객체를 쉽게 생성할 수 있음.기존에 있는 속성만 사용가능하며, 원하는 속성만 골라서 접근할 수 있음.Partial < T > 타입과는 반대로 T 타입 객체에 정의된 모든 속성이 반
dependencies는 클래스가 동작하기 위해 필요한 서비스나 객체를 의미한다.dependency InJection(DI)는 class가 의존성 객체를 외부에 요청하고,외부에서 인스턴스를 생성해서 주입한다.코드간의 의존성을 줄여준다.재사용성이 높아진다.가독성이 높아진
스키마의 유연성데이터의 스키마를 미리 정하지 않고 필요에 따라 동적으로 추가하거나 변경할 수 있다.확장성 수평적 확장이 용이하며, 대용량 및 분산 데이터를 효율적으로 처리할 수 있으며, 읽기와 쓰기 성능이 우수하다.다양한 모델다양한 데이터 모델을 제공하며, 키-값, 문
시스템을 구성하는 서브 시스템이나 컴포넌트 같이 구성요소 간의 관계를 분리하는 시스템 구조이다.그러므로 MVC, MVP 등등 은 아키텍처에 해당한다.소프트웨어 개발 과정에서 발견된 설계의 노하우를 축적하여 이름을 붙이고 재사용하기 좋은 형태로 정리한것이다. 특정한 상황
데이터를 데이터베이스에서 실제로 삭제하지 않고삭제된 것으로 표시하는 기능을 의미한다.지금까지는 그냥 데이터를 데이터베이스에서 지웠었는데, 데이터 보존 또는 복구를 위해 이번에는 soft delete를 사용해보려한다.스키마에 deletedAt 컬럼을 추가해준다.디폴트 값
"인간으로 치면 두뇌에 해당한다."라는 글은 수백번을 봤다.그래서 나름대로 정리하기로 했다.크게 보면 3가지 구조로 이루어져 있다. 1\. Arithmetic Logic Unit2\. Control Unit3\. Memory Unit ALU(산술논리 연산장치)란 비교와
레지스터는 연산에 필요한 데이터를 저장하고 빠른속도로 접근할 수 있는 저장공간이다.레지스터에는 범용 레지스터, 세그먼트 레지스터, 포인터 레지스터, 인덱스 레지스터, 플래그 레지스터로 나뉘어 진다.레지스터들 중에 앞에 E가 붙는것들이 있는데 이때 E는 Extended(
명령에 대한 모든 연산은 결국 저장공간을 통해서 처리하게 된다. 레지스터 = CPU캐시메모리(SRAM), 메인 메모리(DRAM) = 주 기억장치,하드디스크(HDD) = 보조 기억장치PU에는 이러한 캐시 메모리가 2~3개 정도 사용된다. 이를 L1, L2, L3 캐시 메
JavaScript에 내장된 Error 클래스를 확장하여 커스텀 에러 객체를 만드는것이다.코드 설명class CustomError extends Error CustomError 클래스가 Error 클래스를 상속(에러 객체를 커스텀하기 위해 상속받음)constructor
쿠키는 클라이언트에 작은 정보를 저장하는 방법이다.서버가 클라이언트에게 쿠키를 전송 -> 이후에 클라이언트가 서버로 보내는 요청에는 쿠키가 담겨있음주로 사용자를 식별하거나 로그인 세션 등을 유지하기 위해 사용됨편하게 정보를 클라이언트에 저장을 할 수 있다.클라이언트에서
TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)는네트워크 통신에 사용되는 전송 프로토콜이다. 두 프로토콜의 차이는 데이터를 보내고, 받는 방식과 기능적인 차이가 있다.특징1\. 데이터가 손실되었거나, 손
웹 브라우저와 웹 서버 간의 데이터 통신을 위한 프로토콜이다.둘 다 데이터를 주고 받는데 사용되지만 보안성과 암호화에 차이가 있다.기본적인 웹 통신 프로토콜이다. 데이터 전송 시 암호화되지 않으며, 평문으로 전송된다.보안성이 낮기에 민감한 정보들을 주고받을 때는 적절하
DI(의존성 주입)은 클래스가 다른 클래스에 의존할 때, 그 의존성을 외부에서 주입받는 방식을 말한다. 객체가 필요로 하는 다른 객체를 직접 생성하지 않고 외부에서 받아 사용하는것이로서 중복적인 코드를 줄이고, 유연성과 테스트 용이성을 높일 수 있다.ex)a클래스가 b