목록대학교 (252)
SW
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/psO3Z/btqCIDncnUL/hFKrwTbEQ2YevNCXFnGmLk/img.png)
0. Delete Mutation movie를 지우는 Mutation을 작성해보겠다. 먼저 resolvers.js를 다음과 같이 작성한다. deleteMovie는 Boolean형을 return 하도록 설정했으므로 schema.graphql을 다음과 같이 작성한다. 아래는 전에 작성했던 db.js중 deleteMovie 내용이다. playground를 보자. 위와 같이 실행을 한 후 다시 movie query를 보면 다음과 같이 id가 3인것이 사라진 것을 볼 수 있다. 위 과정까지 한 것은 영화 정보를 받을 때 Query를 하였고 Database의 상태를 바꾸기 위해서 Mutation을 하였다. server를 다시 껐다 키면 movies는 원래 상태로 돌아갈 것이다. 왜냐하면 이것은 memory에 있는 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/TEpVc/btqCHxtYbkx/y4HJSt11GC9eEvDK2Kkzo1/img.png)
0. 제목 백준 2225 합분해 BOJ 2225 합분해 C++ 2225 합분해 1. 문제 https://www.acmicpc.net/problem/2225 2. 풀이 0부터 N까지의 정수 K개를 더해서 그 합이 N이 되는 경우의 수를 구하는 문제이다. dp를 이용하였고 dp[K][N]의 의미는 K개의 수로 N을 만드는 경우의 수이다. 예를 들어, dp[3][30]을 구한다고 해보자. 3개로 30을 만들어야 하는 경우이고, 마지막에 더하는 수가 0이라면 2개로 30을 만드는 경우가 나올테고, 마지막에 더하는 수가 1이라면 2개로 29를 만드는 경우가 나올테고, 마지막에 더하는 수가 2라면 2개로 28을 만드는 경우가 나올테다. 위와 같이 쭉 나열해보면 다음과 같은 점화식이 나온다. dp[i][j] = dp..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/kGREz/btqCGQtNe8h/28QyWS4CmguHSv3Q7tvACK/img.jpg)
0. 스타일의 선언과 조작 리액트 네이티브는 모든 스타일이 자바스크립트 안에 존재하고 명시적으로 컴포넌트에 스타일 객체를 연결해야 한다. 리액트 네이티브에서는 스타일시트 대신에 자바스크립 기반의 스타일 객체를 사용한다. 먼저, 인라인 스타일을 사용할 수 있다. 인라인 스타일이 최선의 방법은 아니지만 문법적으로는 가장 간단하게 리액트 네이티브의 컴포넌트에 스타일을 적용하는 방법이다. 약식으로 간단히 스타일에 변화를 줄 때 쓴다. 많이 쓰는 방식은 StyleSheet.create방식이다. 반복적인 객체 할당을 줄여 성능적인 이점이 있다. 코드를 명확하게 구조화할 수도 있다. 한번 생성된 스타일은 변경할 수 없다(immutable). 두 개 이상의 스타일을 합치고 싶을 때 어떻게 해야 할까? style속성은 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/czK73i/btqCIElOYo2/OtZr9FQuqt1ZJtmMHtke80/img.png)
0. Defining Mutations & Creating Mutations 영화를 몇개의 모의데이터로 만들어 놓았다. 지난 포스팅에 했던 것과 비슷하게 getById함수를 구현하였다. 모의 데이터 배열을 반환해주는 getMovies라는 함수도 다음과 같이 구현하였다. 다음으로, 영화를 삭제하는 deleteMovie를 구현해보겠다. id를 argument로 받고 그 id를 사용하여 delete를 할 것이다. 원리는 같은 id를 가지지 않은 movie의 배열을 만들 것이다. cleanedMovies는 같은 id를 가지지 않은 movie들을 담아놓는다. movies배열의 길이가 cleanedMovies배열의 길이보다 길면 movies = cleanedMovies 를 수행하고 true를 반환한다. 이제 sch..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/mMGG9/btqCHwVrxoG/Ggtk8sh0NlSJWHXnvHjKA0/img.png)
0. 제목 백준 9461 파도반 수열 BOJ 9461 파도반 수열 C++ 9461 파도반 수열 1. 문제 https://www.acmicpc.net/problem/9461 2. 풀이 점화식을 찾으면 쉽게 풀리는 문제이다. 두가지 점화식으로 풀리는데 다음과 같다. dp[i] = dp[i-2] + dp[i-3] dp[i] = dp[i-1] + dp[i-5] 두가지 중 하나로 코드를 짜면 정답이다. 3. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #include using namespace std; int main(int argc, const char * argv[]) { int T, N; long int dp[101] = {0}; cin >> ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/mQfLq/btqCB8Pm48A/HySYlaRyeDZpNAuIqX1buk/img.png)
0. Extending the Schema GraphQL Playground는 다음과 같다. 왼쪽 : Query를 보냈고 Query에는 name을 넣었다. 오른쪽 : GraphQL이 내 서버에서 Query에 맞는 Resolvers를 찾는다. 그래서 GraphQL Playground는 뭘까? Playground는 graphql-yoga에 따라오는 건데 나의 Database를 테스트하게 해주는 것이다. 그게 playground가 하는 일의 전부이다. Query는 JSON data 같은 것이다.이것을 어디론가 보내야 하는데 그것을 POST라고 한다. Query들, Mutation들 모두 항상 POST로 보내야 한다. 왜냐하면, 서버가 받아야 하기 때문이다. 이제 좀 더 확장시킨 예를 보겠다. 다음과 같이 Ob..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b2WojB/btqCFzkBNNJ/QsQky3pB3cFJzWhErGdkgK/img.png)
0. GraphQL이란? Graph QL(이하 gql)은 Structed Query Language(이하 sql)와 마찬가지로 쿼리 언어이다. 하지만 gql과 sql의 언어적 구조 차이는 매우 크다. 또한 gql과 sql이 실전에서 쓰이는 방식의 차이도 매우 크다. gql과 sql의 언어적 구조 차이가 활용 측면에서의 차이를 가져왔다. sql은 데이터베이스 시스템에 저장된 데이터를 효율적으로 가져오는 것이 목적이고, gql은 웹 클라이언트가 데이터를 서버로 부터 효율적으로 가져오는 것이 목적이다. sql의 문장(statement)은 주로 백앤드 시스템에서 작성하고 호출 하는 반면, gql의 문장은 주로 클라이언트 시스템에서 작성하고 호출 한다. GraphQL은 Backend개발을 쉽게 만들어 준다. Pr..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bthsWd/btqCGRZedud/BcXul76C0H045sIHmJIDvk/img.png)
0. 제목 백준 1167 트리의 지름 BOJ 1167 트리의 지름 C++ 1167 트리의 지름 1. 문제 https://www.acmicpc.net/problem/1167 2. 풀이 두점 사리의 거리 중 가장 먼 것을 찾아야 하므로 한점을 잡고 그 점으로부터 가장 먼 점을 먼저 찾는다. 찾은 가장 먼 점을 기준으로 잡고 또 다시 그곳으로부터 가장 먼 점을 찾는다. 위와 같은 아이디어를 가지고 시작해보겠다. vector 원소의 자료형으로 pair로 설정하였는데, first에는 연결된 정점, second에는 거리를 저장하였다. 가장 먼 점을 구해야 하기 때문에 bfs를 사용하였다. 기준점으로부터의 거리를 저장하는 dist배열을 만든 후 bfs로 한단계를 거칠때마다 그 거리를 더해준 후 저장한다. 첫번째 bf..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bH9k5f/btqCFyTg9Bh/n3FDQw8gf3ogiVkMkMxEw0/img.png)
0. 제목 백준 11725 트리의 부모 찾기 BOJ 11725 트리의 부모 찾기 C++ 11725 트리의 부모 찾기 1. 문제 https://www.acmicpc.net/problem/11725 2. 풀이 DFS를 이용하였다. 먼저, vector를 이용해 양방향으로 모두 연결시켜주었다. DFS를 하면서 나아가려는 방향의 노드가 아직 방문하지 않은 상태라면 그 노드를 탐색하게 되고 그와 동시에 방금 있었던 노드를 새로 간 노드의 부모로 설정해주었다. 루트가 1이므로 1부터 DFS를 실시하고 2번 노드의 부모부터 차례로 출력해주면 된다. 3. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cLqqMZ/btqCFxT1wbr/I8yCxvgB4BEGKAtt8RwOL1/img.jpg)
0. HTML 엘리먼트와 네이티브 컴포넌트의 유사성 리액트 네이티브에서는 HTML 엘리먼트를 사용하지 않고, 이와 매우 유사하면서 다양한 컴포넌트를 사용한다. HTML 리액트 네이티브 div img span, p ul/ol, li , 자식 아이템 이 엘리먼트들은 비록 서로를 대체할 수는 없지만 아주 비슷한 용도로 쓰인다. 1. 컴포넌트 텍스트 렌더링은 매우 기본적인 기능이다. HTML에서는 다양한 엘리먼트(, 등)로 텍스트를 표시할 수 있다. 리액트 네이티브에서는 컴포넌트만이 플레인 텍스트 노드를 자식으로 가질 수 있다. 리액트 네이티브에서 컴포넌트를 다룰 때는 , 같은 하위 태그를 사용할 수 없으나 fontWeight, fontStyle 속성을 이용하여 비슷한 효과를 낼 수 있다. 리액트 네이티브에서 ..