반응형

안녕하세요 OB입니다.

최근에 nodejs를 이용해서 웹 서버를 구축하는 작업을 해보고 있습니다.

nodejs는 강의로 조금.. 접해본 수준이어서 작업이 수월하지는 않네요ㅎㅎ

웹 서버를 구축하기 위해 DB와 연동하는 과정에서 많은 오류가 발생했는데

그중 가장 저를 🐶고생시킨 'TypeError: ~ is not a function' 에러를 확인해보겠습니다!

 


 

 

간단하게 오류문을 해석해보면 pool.query 함수가 함수로서 제대로 동작을 하지 않고 있는 것을 알 수 있습니다.

아무래도 nodejs를 많이 다뤄보지 않아서 여러 자료를 찾아보고 코드를 작성했는데

남들은 되는 코드가 저는 동작하지 않는 점이 굉장히 의문이 많이 들더라구요..

 

그래서 함수가 제대로 동작하지 않는 이유를 생각해보았습니다.

저는 두 가지의 경우를 떠올릴 수 있었는데

 

  1. 함수명이 겹치는 경우(이미 선언된 변수와 겹친 경우)

  2. 함수가 정의가 되지 않은 경우

 

이렇게 두 가지였습니다.

뭔가 이렇다 할만한 오류도 아닌거같은데 해결은 안되니 엄청 답답하더라구여.

pool.query를 함수로 만들려고 (); 붙이니 연결된 코드가 함수가 아니라고 하곸ㅋㅋㅋㅋㅋㅋ

 

1. 함수명이 겹치는 경우

저는 1번에 해당하는 오류로 function 에러가 발생했더라구여.

위의 사진에서 pool이라는 변수를 이용해 함수를 만들었는데 다른 코드에서 pool을 이미 사용하고 있어서

중복이 발생했다는..ㅎㅎ

굉장히 간단한 문제인데 이걸 일주일을 잡고 오류해결하고있었으니 이렇게 허무할수가 없더라구여

진짜 다 완성한 코드인데 이걸!! 이걸 일주일을!!!!@@@!!!!!!!!!!!!!!!!!

변수명을 안겹치게 다시 작성해준다면 문제없이 코드가 동작할 것입니다.

실제로 저도 pool에서 con이라는 변수로 변경하니까 오류없이 동작했습니다!!

 

2. 함수가 정의가 되지 않은 경우

함수를 사용하기 위해서는 먼저 정의를 해야하죠.

function이라는 명령어를 이용해 함수를 정의하고 그것을 이용하면 되는데

간단하게 코드로 살펴보면 이런식으로 구성할 수 있습니다!

ah라는 js파일을 만들어서 함수 sum을 정의하고 sum함수에 data1, data2에 각각 1을 넣어 console에 찍는 코드입니다.

코드를 실행해보면 이런식으로 2라는 값이 리턴되는 것을 확인할 수 있습니다.

 

그런데 만약,, console.log(sum(1,1));과 함수를 정의한 위치를 변경하면 값이 어떻게 나올까요?

이런식으로 코드를 변경하면.. 놀랍게도 콘솔에서 2라는 값이 출력되는 것을 확인할 수 있습니다!!

 

그렇기에 함수를 정의한 위치가 조금 달라진다고 하여 크게 오류날일은 없을 것이라고 생각하고

함수를 정의하지 않고 사용하는 경우는 거의 없으니까..?

혹시 정의가 되지 않았다면 아마 'ReferenceError: ~ is not defined' 에러가 발생할 것입니다.

이런 경우라면 함수 정의를 추가해주시면 됩니다.

 

1, 2번의 방법 모두 코드를 잘 확인해야한다는것이 개빡치네요

오류가 발생한다면 변수명은 정말 꼭 한번 다시 확인해보세요.

코드를 쓰다보면 비슷한 변수가 굉장히 많이 생겨서 헷갈리게 되는데

이부분에서 저도 오류 잡는데 한참 걸렸네요ㅜㅜ

반응형
반응형

안녕하세요 O_B입니다.

오늘은 타임랩스 기능을 이용해볼려고 합니다!

타임랩스란 움직임을 촬영하고 원래 속도보다 빠르게 보여주는? 기법이라고 할 수 있습니다.

 

클립스튜디오는 PRO / EX 이렇게 2가지의 버전이 있죠!

저는 현재 PRO 버전을 사용하고 있습니다. 애니메이션 그릴일은 없지 않을까.. 하구..ㅎㅎ(가격차이도 좀..)

PRO는 일반판, EX는 조금더 기능이 많은? 버전이라고 생각하면 편할거같아요.

 

타임랩스 기능을 이용하고 싶고 와콤 제품을 사용하고 있다면

와콤 드라이버를 최신 버전으로 업그레이드 해주셔야 기능이 정상적으로 작동합니다!

저는 아무리 찾아봐도 타임랩스 기능을 찾지 못해서 PRO는 타임랩스 기능을 이용하지 못하는 줄 알고

EX로 업그레이드 해야하나 고민을 많이 했었어요. 가벼운 낙서라도 타임랩스로 보면 더 재밌지 않을까..! 하는 마음에..

하지만! 와콤 드라이버 업데이트를 하지 않아 보이지 않는 거였더라구요ㅎㅎ

(클튜는 따로 업데이트 했던 기억이 없었어요! 최신 버전이라면 문제없이 동작할겁니다.)

 

제가 사용하고 있는 와콤 버전은 6.3.42-2 입니다. 업데이트가 또 생겼네요. 업데이트는 다음으로 미뤄야겠어요*^^*

(현재 와콤 드라이버의 버전은 '와콤 데스크탑 센터' 프로그램을 통해 알 수 있습니다.)


1. 타임랩스 기록하기

타임랩스 시작하기

업데이트를 했다면 타임랩스 기능을 어렵지 않게 찾아볼 수 있습니다.

[파일] - [ 타임 랩스 ] - [ 타임 랩스 기록 ] 을 누르면 타임랩스 시작을 결정할 수 있습니다.

 

해당 이미지의 화면이 뜬다면 OK버튼을 눌러 타임랩스 기능을 활성화 시키면 됩니다.

 

 

 

2. 원하는 그림 그리기

타임랩스 기능을 활성화 시켰다면 원하는 그림을 자유롭게 그리면 됩니다!

저는 최근에 그리고 있던 캐릭터로 타임랩스를 만들어 볼려고 합니다.

최근에 '스도리카' 라는 모바일 게임을 다시 열심히 해볼까싶어.. 시즌3 좋아하는 캐릭터를 그려보고 있었습니다!

 

바로 스도리카 수현! 공수현!!

한국계를 모티브로 한 물계파라 스킬도 이쁘고 이름도 너무 예뻐요.

무엇보다 스알 일러가 넘 이쁘게 뽑혔어요.

수현 얻을려고 70연 넘게 돌렸던거같은데 못 뽑은거 생각하니 마음이 아파오네요..

 

 

 

3. 타임랩스 저장하기

그림을 완성했다면 타임 랩스 내보내기를 누르면 됩니다!

타임 랩스 기록을 누른 시점부터 그린 그림을 빠르게 영상으로 보여주는 거에요.

저도 끝까지 완성은 하지 않고 중간만 녹화를 해봤습니다!

 

그런데 웬걸 동영상 올리는데 오류가 나네요ㅜㅜ

아쉽게도 녹화한 영상은 보여드릴 수 없지만 영상 저장에는 문제가 없습니다!

[ 타임랩스 내보내기 ] 를 클릭하면 이런 화면이 보이게 됩니다.

저는 잠깐 녹화해서 비디오 길이가 0초로 나오네요!

오랜 시간동안 작업해도 실제로 제가 그린부분들만 녹화가되고 빠른 재생이 되어 영상 길이가 그렇게 길게 나오지 않을거에요ㅎㅎ

 

비디오 길이, 크기, 비율 원하는대로 설정해주시고 OK 버튼을 눌러 원하는 파일위치에 저장해주시면 됩니다.

영상을 한 번 저장했다고 타임 랩스가 바로 꺼지는 것이 아니기때문에

혹시나 원하는 크기 비율이 아니라면 다시 설정해서 저장버튼을 누르면 됩니다!

 

타임 랩스를 켜놓은채로 작업하고 파일을 끈 경우 다시 돌아와도 타임랩스는 꺼지지않고

유지 되기 때문에 한번에 작업해야한다는 압박감은 가지지 않으셔도 괜찮습니다.

제가 그렸던 과정을 빠르게 보면 되게 재밌더라구요. 타임 랩스 기능 이용해보는걸 추천드립니다!

 

 

반응형
반응형

안녕하세요 오렌지빵 O_B입니다.

오늘은 클립 스튜디오 움직이는 짤을 만들어보겠습니다.

보통의 일러스트와 크게 다르지 않아 어렵지 않게 만들어볼 수 있습니다!

 


1. 움직이는 일러스트 레이어 만들기

 

움직이는 일러스트 레이어 만들기

 

먼저 움직이는 짤을 만들기 위해 편리한 레이어를 만들어야 합니다.

보통의 레이어로 만들어도 가능할것이지만 '움직이는 일러스트 만들기'를 클릭하고 레이어를 만들면 훨씬 편하게 만들 수 있습니다!

 

레이어 추가 버튼을 클릭하여 기본적으로 만들려는 움짤의 크기를 폭과높이를 이용해 설정해주고

'움직이는 일러스트 만들기' 버튼을 클릭해주고 원하는 셀과 프레임을 선택하고 레이어를 만들어주면 됩니다.

 

움짤을 위한 레이어 생성

레이어(파일)을 생성하고 난다면 애니메이션 폴더 안에 본인이 선택한 셀 수에 맞게 레이어가 생성된 것을 알 수 있습니다. 저는 셀 매수를 24로 선택하여 24번까지 있는 것을 알 수 있습니다!(사진이 잘렸지만 밑으로가면 1번까지 있습니다.)

 

 

 

2. 레이어 파일 채우기

레이어를 생성했으니 레이어를 채울 시간입니다!

본인이 원하는 움짤을 만들기위해 *1번 레이어* 부터 그림을 그려주시면 됩니다.

저는 캐릭터가 뒤를 보이는 상태에서 고개를 돌리는 모습으로 그려볼려고 합니다.

 

저의 클튜 화면입니다. 간단하게 뒤로 돌아있는 캐릭터를 그렸습니다.

선을 정리하지 않아 지저분하고 인체가 망가진 모습이 마음아프네요:)

가장 중요한 것은 제일 밑에 있는 *1번 레이어*에 그려줘야 하는 것입니다!!

 

 

 

3. 위의 레이어로 차례대로 올라가며 그리기

1번 레이어를 채웠다면 2번 레이어로 올라가면 됩니다.

 

2번 레이어 클릭시의 모습

2번 레이어를 클릭했을 때의 모습입니다. 1번 레이어에서 그렸던 선이 보라색으로 보이는 것을 알 수 있습니다.

즉 전에 그렸던 레이어를 보고 다음에 그릴 그림을 그리면 되는 것입니다!

일반 레이어로도 가능하지만 저는 따로 설정을 해주지 않아도 되는 것이 편리하게 생각되더라구여 :)

 

 

1번 레이어의 투명도를 42%로 조절하고(선이 너무 강하게 보여 살짝 줄였습니다! 본인의 가호에 맞게 조절하시면 됩니다.) 그 위에 올 그림을 그렸습니다. 이런식으로 위의 레이어로 올라가며 차례대로 그림을 그려가면 됩니다!!

 

 

그림이 더러워서 복잡해보이네요ㅎㅎ..

보라색으로 보이는 선은 이전의 레이어(3번 레이어), 초록색으로 보이는 선은 다음의 레이어(5번 레이어)를 보여주는 것입니다. 레이어의 투명도를 조절하여 보면 더 편리합니다!

이렇게 이전, 다음의 레이어를 확인하며 움짤을 그릴 수 있어 저는 편리했습니다.

 

4. 움짤 저장하기(.gif)
저는 의지가 약하여.. 6번레이어까지만 작성하고 움짤을 저장해볼까 합니다.

그림을 모두 그렸다면 마지막으로 저장만 해주면 됩니다.

 

움짤 저장 방법

움짤을 저장하는 방법은 어렵지 않습니다!

파일 - 애니메이션 내보내기 - 애니메이션 GIF 를 클릭해주면 됩니다.

다음 원하는 파일 위치를 선택하여 저장 버튼을 눌러주시면 됩니다.

 

저장버튼을 누르면 나오는 화면입니다.

애니메이션 gif 파일을 만들기 전 마지막 화면입니다!

출력하기 위한 애니메이션의 크기를 폭, 높이를 이용하여 조정해주시면 됩니다.

저는 6번 레이어까지 작성을 했고 약간의? 공백을 주고 싶어 7번 프레임(레이어)까지 4번 반복하게 설정했습니다.

모든 설정이 끝났다면 OK 버튼을 이용하여 움짤을 저장해주시면 됩니다.

 

움직이는 그림(움짤)

제가 그린 움직이는 그림의 저장본입니다!

선을 정리하지않고 저장하여 깨끗하지 못하네요ㅎㅎ

저는 반복횟수를 4회로 지정했지만 무한반복도 가능합니다!

 

모두 간단하게 원하는 움짤 많이 만드셨으면 좋겠습니다!

반응형

+ Recent posts