목록전체 글 (259)
차근차근
0. Table View 정갈하게 보여주기 위해 Table View가 필요하다. 요소를 살펴보면 다음과 같다. '데이터가 무엇인지', '데이터가 몇개인지', '(옵션) 데이터를 누르면 어떤 동작을 할 것인지' 테이블뷰를 만들어 보겠다. 테이블 뷰를 드래그해서 storyboard에 올려놓는다. 크기 조절을 하고 제약 조건을 설정해준다. table view 의 속성 지정을 위해 UITableViewDataSource와 UITableViewDelegate를 상속받는다. 오류가 뜨지만 Fix를 클릭하면 해결된다. storyboard의 View Controller와 ViewController.swift의 viewcontroller가 잘 연결되었는지 확인해본다. 테이블 뷰만드는 방법은 두가지인데 하나는 임의의 셀을..
0. API Application Programming Interface 이전까지 만들었던 것은 Node.js가 가지고있는 기능들을 호출함으로써 동작하게 된다. 예를 들어, fs.readFile을 보자. 이 함수는 node.js를 만든 개발자들이 만든 것이다. 우리는 이 함수가 어떤 원리로 동작하는지 모른다. node.js를 만든 개발자들은 node.js를 이용하는 개발자들에게 사용설명서를 이용해 사용하라고 한다. 두 개발자 사이의 약속이 interface이다. 이렇게 application을 만들기 위해 제공되는 interface를 Application Programming Interface 즉, api 라고 한다. 1. CreateServer API : http.createServer([requestL..
0. 입력정보에 대한 보안 만약 id, password를 이용해서 접속을 하려고 한다. 그럴때 id, password가 페이지 소스에서 보여지면 안된다. 그것을 막기 위해 다음과 같이 처리한다. 1. 출력에 대한 보안 만일 alert나 와 같은 것을 description에 넣으면 경고창이 뜨거나 튕긴다. 그것을 보안하기 위해서 이런식으로 수동으로 바꿔 줄 수 있다. 그러나 수동으로만 해결할 수는 없는 일이다. 그래서 다음 명령어로 sanitize-html을 설치한다. 와 같은 것을 걸러준다. 또한 허용되는 태그를 가지고 싶다면 allowedTags 옵션을 주어서 제외시키면 된다. 다음과 같이 사용한다.
0. 객체의 형식 배열과 객체 모두 정리정돈 하는 도구이다. 배열은 각각의 원소들은 순서가 있고 키값이 숫자이다. 객체는 각각의 원소들이 순서가 없고 키값이 숫자가 아니어도 된다. 1. Refactoring 앞에서 짠 코드를 객체를 이용해서 Refactoring해보면 다음과 같다. 다른 부분의 코드도 이 객체에 따라 수정해야한다. 2. Module 객체가 많아지면 모듈로 정리한다. exports와 require를 이용한다. 3. 모듈 활용 모듈을 활용하여 코드를 고치면 다음과 같다. 또한 template.js 에서 보듯 변수를 사용하지 않고 module.exports를 바로 이용할 수 있다.
0. 후기 2019년에 학교에서 '컴퓨터 네트워크'라는 수업을 들었고 그것을 바탕으로 네트워크 관련 자격증을 취득하고 싶었다. CBT에 올라와 있는 기출문제를 풀고 블로그에 정리하며 준비하였다. 시험은 50분간 진행되고 20분 후 부터 나올 수 있었다. 100점 만점 60점 이상이면 합격이다. 문제는 기출문제처럼 종목이 나눠져서 나오지 않고 랜덤으로 나온다. OSI 7 계층, 서브넷 마스크 관련 계산, 리눅스 명령어, 네트워크 장비 기능, 다양한 프로토콜의 기능 정도만 알아도 충분할 것 같다. 위 글에 종목별로 정리, 핵심내용 요약을 해놓았는데 '핵심내용 요약 + 기출문제' 만 해도 무난히 (98% 확률로)합격할 수 있(을것 같)다.
0. 제목 백준 15953 상금 헌터 BOJ 15953 상금 헌터 C++ 15953 상금 헌터 1. 문제 https://www.acmicpc.net/problem/15953 2. 풀이 조건문으로 범위를 지정하는 방식으로 구현하는 것도 가능하다. 아래 풀이는 다른 방식이다. 처음에는 각 등수별로 지정되는 인원들을 vector에 담으려고 하였으나 풀다보니 vector가 필요없었다. 상금을 배열에 담아두고 등수와 등수에 할당 된 인원수에 대한 반복문을 이용하였다. 입력받은 등수에 해당하는 등수와 상금배열의 인덱스의 관계를 이용해 같으면 변수 firstGet, secondGet에 담았다. 합에 10000을 곱해주면 상금의 합이 구해진다. 3. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15..
0. 제목 백준 2133 타일 채우기 BOJ 2133 타일 채우기 C++ 2133 타일 채우기 1. 문제 https://www.acmicpc.net/problem/2133 2. 풀이 3xN 크기의 벽을 2x1, 1x2 크기의 타일로 채우는 경우의 수를 구하는 것이다. 앞서 풀었던 타일 채우기 문제와는 살짝 달랐다. 앞에서 풀었던 타일 문제들은 N의 값이 늘어날 때 새로운 종류의 타일 모양이 나오지 않았다. 그러나 이 문제는 N이 2씩 늘어날때마다 새로운 모양 2개가 추가적으로 생겼다. 먼저 끝 2칸을 제외하면 3가지 방법이 나온다. 그리고 4칸, 6칸, 8칸.... 제외하면 2가지씩 추가적으로 생긴다. 그리고 3xN의 크기의 벽을 2x1, 1x2로 채우기 위해서는 N이 짝수이어야 한다. N이 홀수이면 넓..
0. 제목 백준 4963 섬의 개수 BOJ 4963 섬의 개수 C++ 4963 섬의 개수 1. 문제 https://www.acmicpc.net/problem/4963 2. 풀이 백준 2667 단지번호붙이기 문제와 비슷한 문제이다. 2667번은 상하좌우를 따지는 것이었다면 이 문제에서는 대각선까지 고려해야한다. dfs에서는 여덟 방향 모두 탐색을 하면서 좌표가 0보다 작아지거나 주어진 넓이나 높이보다 같거나 커지면 넘어가면서 탐색한다. 재귀적으로 코드를 작성했으므로 여덟방향 중 이어진 부분이 있으면 그 덩어리를 전부 탐색완료 할 것이다. main함수에서 탐색을 할 때 값이 1이면서 방문하지 않은 부분을 반복문 내에서 탐색한다. 한 덩어리를 탐색완료 할 때마다 덩어리개수를 1씩 증가시켜준다. 탐색을 모두 마..
0. 제목 백준 1996 프린터 큐 BOJ 1996 프린터 큐 C++ 1996 프린터 큐 1. 문제 https://www.acmicpc.net/problem/1966 2. 풀이 중요도에 따라 출력되는 순서가 다르므로 우선순위 큐를 사용한다. C++ STL의 queue와 priority_queue를 사용한다. 먼저 q의 원소들을 입력받을 때 pair를 이용하여 인덱스와 중요도 값을 쌍으로 입력 받고 q에 push 해준다. 그리고 prioirity_queue pq; 와 같이 우선순위 큐를 선언한다. 우선순위 큐에는 중요도 값만 push 해준다. q의 원소가 0개가 아닌동안 루프를 돈다. q의 가장 먼저 들어온 원소 즉, 가장 앞에 있는 원소의 인덱스와 중요도 값을 변수 nowidx, nowval에 저장한다...
0. 동기 & 비동기 동기(Synchronous) : 일이 처리되면서 그 일이 오랫동안 처리되야 되는 경우에도 기다렸다가 그 다음 일을 처리하는 것이 동기적으로 일을 처리하는 것이다. 비동기(Asynchronous) : 병렬적으로 동시에 여러가지 일을 처리하는 것이 비동기적으로 일을 처리하는 것이다. nodejs는 비동기적 처리를 위한 많은 기능을 가지고 있다. 효율적이지만 복잡하다. 동기적인 방식은 다음과 같다. sample.txt에는 'B'가 적혀있다. 실행결과 ABC가 출력된다. 다음은 비동기적인 방식이다. 실행결과 ACB가 출력된다. 1. callback함수 이름이 없는 함수를 익명함수라고 한다. 2. Package Manager PM2 와 같은 프로그램이 있다. 우리가 node를 실행했을 때 파..