학습 기록/데브코스 웹 풀스택 4기 31

데브코스 웹 풀스택 4기 후기 (중도탈락)

오늘 코딩공부가 하기 싫은 관계로... 프로그래머스 데브코스 웹 풀스택 4기에 참여하였던 후기를 간략하게 적어보려고 한다. 참고로 완주하진 않았고 중도탈락하였다. 아무래도 국비교육이다 보니 출결이 빡빡한 부분이 있다. 하루 10시간 제한 신경 쓰면서 강의 듣는 것도 그렇고 이래저래 체크하고 있어야 하는 부분이 많았음. 제일 짜증났던별로였던 거는 과제 하나 낼 때마다 본인인증 해야 한다는 것... 그날 과제가 3개다? 그럼 인증 3번 해야 함 ㅎㅋ 가끔 인증 오류(사실 가끔 아니고 자주) 있어서 한 과제에 인증 네 번 하고 그랬다. 난이도는 낮은 편. 코딩을 아예 처음 배우는 사람이라도 무리 없이 쫓아갈 수 있다. 근데 또 가끔은 엥 이걸 초심자가 할 수 있어? 싶은 부분도 있다. 난이도 1과 5가 공존하..

프론트엔드 기초: 타입스크립트 입문하기

/date 24.10.28. 📌 타입스크립트란- 타입스크립트가 왜 필요한가?: 자바스크립트는 어렵지 않게 배울 수 있는 편리한 언어이긴 하지만, 코드가 너무나도 지저분하다. 코드의 스케일이 커질수록 코드 관리가 되지 않아 협업에 문제가 생길 수도 있다. -> 타입스크립트로 해결타입스크립트 = 자바스크립트 + 타입체크타입스크립트 환경에 자바스크립트를 코딩하면 동작한다. 반면 자바스크립트 환경에 타입스크립트를 코딩하면 동작하지 않는다.자바스크립트와 타입스크립트의 코드 스타일 비교function plus(a, b){ return a+b;}  자바스크립트의 경우 타입 명시를 해주지 않아도 된다.function plus(a: number, b: number){ return a+b;} 타입스크립트의 경우 타입 명..

프론트엔드: 객체 지향 프로그래밍

/date 24.10.26. 📌 함수 포인터- 함수를 포인터처럼 사용할 수 있는 방법이다. 함수명 앞에 *을 붙여주는 방식으로 함수 포인터를 선언한다. 형식이 함수와 같을 뿐, 함수의 주소값을 저장하는 변수이다. - 함수 포인터를 사용하는 이유메메모리의 크기 및 위치가 결정되는 시점은 컴파일 타임 또는 런타임 시점컴파일 타임 시점에 결정은 정적 바인딩, 런타임 시점의 결정은 동적 바인딩(실행 중에 메모리 결정)VScode에서 사용하는 확장 프로그램들은 플러그인 방식으로 동장 → 새로운 기능을 추가할 때 매번 컴파일하지 않아도 된다. 즉, 함수 포인터의 사용은 프로그램의 유연한 확장성을 제공한다! 📌 구조체- 다량의 데이터를 한 번에 선언하기 위해 배열을 사용했다. 다만 서로 다른 종류의 변수를 하나로..

프론트엔드 기초: 연산자, 분기, 반복, 함수

/date 24.10.24. 📌 연산자- 산술 연산자: 사칙 연산이 기본- 대입 연산자: 오른쪽에 잇는 값을 왼쪽에 대입하는 역할. 대입 연산자와 산술 연산자를 혼용해서 사용하기도 한다.- 증감 연산자: ++a(a의 값을 1 증가시킨 후 연산 진행) / a++(연산을 진행한 수 a값을 1 증가)#include int main(){ int a = 5; int b = 10; printf("%d", ++a); return 0;} - 관계 연산자: 관계에 대한 결괏값은 bool 타입으로 전달된다.#include int main(){ int a = 10; int b = 11; printf("%d", a == b); //0(false의 %d표현) return 0;} - 논리 연산자: 두 개의 조건식 등을 결합하여..

프론트엔드 기초: 프로그래밍의 개념, 변수와 상수

/date 24.10.23.   📌 왜 컴파일 언어를 이해해야 하는가?- 스크립트 언어는 언어의 본질에 대해 이해하기 어렵다. 프로그래밍 언어를 처음 배울 땐 근본적인 언어부터 시작해 보는 것이 좋다.  📌 프로그래밍의 개념- 프로그래밍은 개발자가 소프트웨어를 개발하는 과정이라고 볼 수 있다.- 프로그래밍 언어를 컴퓨터는 해석할 수 없다. 컴퓨터는 0과 1로만 소통하기 때문에, 컴퓨터 언어는 사람과 컴퓨터 간의 통신 수단이라고 볼 수 있다. 우리가 사용하는 컴퓨터 언어를 컴퓨터가 해석할 수 있도록 해주는 과정을 컴파일이라고 볼 수 있다.  📌 C언어로 Hello World 출력하기- C언어의 기본 구성 요소는 함수이다. (리액트의 컴포넌트와 유사)#include //studio.h 라이브러리 가져오..

프론트엔드 기초: JavaScript (1)

/date 24.10.21. 실습 환경 세팅하기브라우저와 개발자 도구: 브라우저에서는 개발자 도구 제공. 여러 가지 탭을 통해 여러 기능 제공.  자바스크립트 훑어보기자바스크립트 특징 - 인터프리터 언어: 컴파일 단계가 없음. 컴파일러 언어에 비해 실행 속도가 느림 : 모던 브라우저 내의 V8엔진에선 속도 개선됨그 외 특징동적 타입 언어: 변수에 들어가는 값에 따라서 런타임에 타입이 추론됨함수는 일급 객체: 객체와 동일하게 사용되며, 함구는 값과 동일하게 취급프로토타입 기반 상속: 언어가 갖고 있는 프로토타입 체이닝 구조를 통하여 상속 가능다양한 프로그래밍 패러다임 지원: 명령형, 함수형, 객체지향형자바스크립트의 탄생배경과 ECMAscript: 스크립트 언어를 표준화하고자 하는 필요성에서 출발  데이터와..

백엔드 프로젝트: API 설계해보기

/date 24.09.30. /* 공부하며 정리한 내용이니 정확하지 않을 수 있습니다. 잘못된 내용은 댓글로 알려주세요!*/  맥북 미리보기로 export 했더니 이렇게 저장된다... ㅎ 이...이게뭐고 그렇지만 하나하나 저장하기는 너무 많으니까(^^,,) 이렇게라도 기록 확실히 기초 - 심화 거치면서 API 설계는 좀 익숙해진 기분이다(초심자의 오만은 귀엽게 봐주셔). 머리에서 플로우가 그려지는 기분이랄까. 어떤 기능을 넣는다면 어떤 API가 필요하고, 그럼 그 API와 ERD를 어떻게 설계해야 하는지 대충 감이 잡힌다.

백엔드 심화: DB 실습, 시간 타입

date/ 24.09.12. /* 공부하며 정리한 내용이니 정확하지 않을 수 있습니다. 잘못된 내용은 댓글로 알려주세요!*/ 📌DB 테이블을 생성하는 SQL문을 직접 작성하는 실습을 진행해 보겠습니다.  참고로 이런 식으로 DB 켜고 바로 쓰지 말고 메모장에 작성한 다음 붙여넣기 해주는 것이 좋습니다. 별도 관리의 필요성!   auto_increment_lock_mode라는 것이 있습니다. 중간에 insert에 실패하더라도 auto_increment를 부여한 값은 하나씩 증가한 값을 갖게 되는 케이스의 원인. 📌JOIN 기능이 신기해서 실제로 적용해 보았습니다.  📌

백엔드 심화: DB 기본

date/ 24.09.11. /* 공부하며 정리한 내용이니 정확하지 않을 수 있습니다. 잘못된 내용은 댓글로 알려주세요!*/  📌데이터베이스란, 데이터를 통합하여 효율적으로 관리하기 위한 데이터 집합체를 의미합니다. 데이터를 구조화하여 관리함으로써 데이터 중복을 막고, 효율적이고 빠른 데이터 연산을 가능하게 합니다. 우리는 데이터베이스를 운영하고 관리하기 위한 DBMS(database management system)을 통해 데이터베이스를 사용합니다. 때문에 우리가 날것의 데이터를 직접 사용하는 사례는 거의 없을 것입니다. ㅎ.. 사실 당연합니다. DBMS의 종류에는 오라클, mySQL, mariaDB 등이 있습니다. 굉장히 다양하고 운영하는 회사도 다 다르지만 명령어(SQL)는 서로 유사합니다. SQ..

백엔드 기초: 마무리, express

date/ 24.09.10. /* 공부하며 정리한 내용이니 정확하지 않을 수 있습니다. 잘못된 내용은 댓글로 알려주세요!*/ 📌오늘은 뭘 했느냐... 라우팅과 express의 구조에 대해 한 번 더 살펴보고, 간단하게 ERD를 그려보았습니다. ERD를 그릴 때 유의했던 점은 회원마다 채널을 여러 개(실제 유튜브의 경우 한 개의 계정당 채널을 100개 소유할 수 있다. 비슷하게 구현하는 것이 목표.) 가질 수 있다는 점입니다. 이제까지 코드를 짤 때는 그냥 채널명 혹은 id 받아와서 정보 뿌려 주면 되는 거지~ 싶었는데 전혀 해결책이 아니었고, 각 채널별로 id를 부여해서 분류해야 했습니다. 수업 들으면서 노션에 표로 작성해봄 실제 설계야 이것보다 복잡하겠지만, 지금은 이 정도만 고려하고 넘어가겠습니다...