목록분류 전체보기 (71)
작심 365
무방향 그래프를 인접행렬을 이용해서 표현. 편의를 위해서 정점의 최대 갯수를 제한. #include #include #define MAX_VERTICES 50 // 최대 정점 갯수 제한 typedef struct GraphType { // 그래프 int n; // 정점 개수 int adj_mat[MAX_VERTICES][MAX_VERTICES]; } GraphType; void graph_init(GraphType* g) { int r, c; // 행,열 g->n = 0; for (r = 0; r adj_mat[r][c] = 0; // 배열의 모든 값을 0으로 초기화 } void insert_edge..
#include #include typedef struct _stack { // stack 구조체 정의 struct _stack* next; int data; } stack; stack* top; // 가장 마지막에 들어온 (가장 위에있는) 데이터를 가리키는 변수 void push(int item) { // 값 추가 함수 stack* tmp = (stack*)malloc(sizeof(stack)); if (tmp == NULL) { // 메모리가 full 일때 fprintf(stderr, "The memory is full\n"); exit(1); } tmp->next = top; tmp->data = item; top = tmp; } int pop() { // 값 삭제 함수 if (top == NULL..
Intent는 안드로이드에서 많이 사용하는 요소이므로 꼭 사용법을 알아두는 것이 좋다. Intent를 번역하면 의도, 요청, 의사 전달 정도로 해석할수 있다. 크게 액티비티 간에 소통, 안드로이드 시스템과 앱 간에 소통, 앱 간에 소통 에 사용된다. 여기서는 앱개발에서 가장 흔히 사용되는 아주 간단한 두 액티비티간에 소통을 예로 들었다. 두 액티비티간에 화면 전환을 하기 위해 일단 두개의 xml파일과 각각에 대한 코틀린 파일을 만들고 MainActivity에서 버튼을 눌렀을때 IntentActivity로 이동하도록 했다. 이때 Intent() parameter에 대해 얘기를 하면 첫번째 parameter에는 context가 들어가고 두번째는 넘겨받을 activity의 이름이 들어가면 되는데, 여기서 co..
1. CSR과 SSR CSR(Client-side Rendering) 이란? CSR방식은 클라이언트 즉 사용자 측에서 화면을 렌더링 하는 방식이다. 먼저 사용자가 특정 웹 서비스에 접속을 하면 웹 서버에서 html을 먼저 다운받는다. 그런데 지금 받아진것은 그냥 html 파일 뿐이므로 각각의 페이지에 필요한 자바스크립트 파일들을 다시 요청을 하게되고 서버로부터 다운을 받게된다. 이렇게 모든 파일들이 다 다운되고나서야 사용자 화면에 그려지게된다. react도 기본적으로 CSR 방식을 사용하기 때문에 모든 자바스크립트 파일을 다운받고나면 react web application이 실행되고 그다음 react 컴포넌트들이 화면에 그려지고 그때서야 사용자에게 화면이 보이게되고 그 페이지와 상호작용이 가능해진다. S..
React의 Virtual Dom 우선 virtual dom 에서의 dom이란 document object model로 객체로 문서 구조를 표현하는 방법이다. 주로 xml, html 로 작성한다. 웹 브라우저는 dom을 활용해서 객체에 자바스크립트와 css를 적용한다. dom은 tree 형태로 특정 노드를 찾거나 수정하거나 제거하거나 원하는 곳에 삽입할수도 있다. virtual dom virtual dom을 사용하면 실제 dom 을 조작하지 않고, 가상 dom을 사용한다. virtual dom은 실제 dom의 사본이라고 생각하면 된다. react에서 데이터 변경으로 화면을 업데이트 할때는 다음의 3가지 순서를 거친다. 1. 데이터를 업데이트하면 전체 화면을 virtual dom에 다시 그린다. 2. 이전..
props 검증을 위해 propTypes을 사용할때 Typo in static class property declaration react/no-typos 라는 오류가 떴다. 이 오류를 고치는 방법은 간단하다. 별거아닌것같지만 아무생각없이 치다보면 쉽게 뜰수있는 오류라고 생각한다. 오류의 원인은 p를 대문자로 썼기때문이다. component.PropTypes = {} 가 아니라 component.propTypes = {} 라고 해줘야한다. 대소문자 한글자 차이라서 헷갈리기 도 쉽다. 왜냐면 그 안에 들어가는 글자는 PropTypes 로 대문자이기 때문..
배열의 map() map함수는 정의된 함수를 배열(array)의 모든 item에 적용시켜준다. 그리고는 변경된 배열을 리턴해준다. 아래 예제에서는 colorList라는 배열에 6가지의 색을 저장하고 그 배열의 모든 아이템을 map() 함수를 이용해서 변경해 리턴해주었다. 적용한 함수는 모든 배열의 기존값 뒤에 ✨이모티콘을 추가해주는것이다. let colorList = ["red","orange","yellow","green","blue","purple"]; let newColorList = colorList.map(function(color){ return color + " ✨" }); console.log(colorList); // 결과 ["red","orange","yellow","green","bl..
노마드 코더의 'ReactJS 로 영화 웹 서비스 만들기' 강의를 들으며 간단히 정리하는 곳이지만 react를 처음 배울때 공부하는 기본적인 내용들이다. 초기 세팅 react 개발을 할때는 개발을 할수있도록 환경을 만들어줘야 한다. 그런데 그 방법이 간단하지는 않다. 이런 환경을 한번의 명령어로 세팅해줄수 있는데, 그 명령이 바로 npx create-react-app project_name 이다. 이 강의에서도 그렇고 대부분의 처음 react를 접하는 사람들이 이 명령어로 react 개발환경을 구축한다. (여기서는 vs code를 사용한다. ) 컴퓨터 사양에 따라 시간이 걸릴수 있는데 기다리다보면 언젠가는 된다. 마지막에 Happy hacking! 이라는 글이 나왔다면 성공적으로 설치가 된것이다. 다 만..