Java 개발자가 Node.js 정복하기 #1

이준석·2021년 2월 28일
4

NodeJs

목록 보기
1/8
post-thumbnail

서론


대학 4년동안 Java만 해왔고 회사에서도 Java만 사용하고 있는 뉴비 개발자이다.

ALM 도구 솔루션 회사를 다니고 있는데 라이센스 정책이 올해부터 바뀌게 되면서 서버 버전이 사라지게 되었다. 그리고는 클라우드와 데이터센터 버전 2개로 솔루션 사업을 하게 되었다.

클라우드가 달라봤자 얼마나 다르겠나 싶었지만 개발 문서를 살펴보고서는 너무나 다른다는걸 알았다. 더군다나 Java 보다 Node.js 기반으로 작업하는 것을 권장한다는 공식 문서 또한 보게 되었다.

하지만 Spring-boot 를 이용한 Java 개발이 아예 안되는 것은 아닌데 권장 방식이 아닌 만큼 뭔가 되게 번거로웠다. (ngork, http-server 등 다양한 Tool을 사용해야 하는데 ngrok은 2시간이 넘으면 다시 켜줘야 하는 번거로움이 있다.)

회사에서는 클라우드 개발을 앞으로 어떤식으로 할 지 나온 방안은 없지만 Java 를 메이저로 잡고 Javascript를 마이너로 잡으면 앞으로 굶어죽진 않겠다고 생각해서 공부하면서 동시에 프로젝트를 진행해보기로 했다.

본론


React-native, Node.js(express.js), firebase 를 이용한 프로젝트를 준비중이다.

혼자 시작하기는 의지박약일꺼 같고 친구를 꼬셔서 같이 하기로 마음 먹었다.
친구도 언리얼 엔진 관련 회사에 다니고 있고 언리얼 엔진 말고는 다른 언어를 사용한 경험이 적은 친구다. 요즘 회사에 현타도 많이 느끼는 것 같아 보여서 Javascript 로 역량을 키워서 이직해보라고 권유했다.

바로 넘어왔고 따라서 같이 공부하면서 친구는 UI 위주, 나는 서버 위주로 프로그래밍을 진행해보려고 한다.

우선은 앱버전 BBS(Bulletin Board System, 게시판)를 만들어볼 예정이다. BBS를 하다보면 데이터 CRUD를 전부 경험할 수 있고 CRUD만 하면 웬만한 건 거의 커버가 가능하다고 생각했기 때문이다. 그렇기 때문에 빠르게 게시판을 제작해보고 요즘 많이 사용하는 당근마켓 앱을 클론코딩 해볼 예정이다.

그래서 오늘은 가볍게 만나서 환경 설정을 했는데 스펙은 다음과 같다.

개발 구축 환경
1. React-native-cli : v2.0.1
2. Node.js : v14.15.4
3. Express.js : 아직 구축 안함
4. Visual Studio Code (Atom에서 도망침)
5. Android Virtual Device (Google Pixel)
6. Window 10

환경 구축하는 설명은 구글에 검색하면 무지막지하게 잘 나와있으니 스킵하고 내가 만난 몇가지 오류에 대해서 작성해보려고 한다.

1. ANDROID_SDK_ROOT 환경변수 오류

모든 설정이 끝난 뒤 react-native run-android 명령어를 터미널에 입력한 뒤에 ANDROID_HOME이 없다는 오류를 만났다. (오류 화면 캡쳐를 깜빡했는데 추후에 찾게되면 사진을 첨부하겠다.)

따라서 환경변수 설정을 다시 들어가보니 ANDROID_SDK_ROOT 라고 새로 환경 변수를 만들었어야 했는데 ANDROID_SDK 라고만 적어서 인식하지 못한 이유였다. (ROOT는 그냥 붙인줄 알았다.) 그래서 이름을 수정하고 다시 명령어를 입력하니 해당 오류는 사라졌다.

2. app:installDebug FAILED

이 부분도 react-native run-android 명령어를 터미널에 입력했을 때 발생한 문제였다. 그래서 찾아보니 이미 내 Virtual Device가 개발자 모드가 활성화가 안되어있거나, 동일한 이름을 가진 앱이 설치가 되어있을 때 발생한 오류라고 한다.

따라서 개발자 모드 활성화를 확인해보니 새로 깔아서 활성화가 안되어있었다. 그리고 뭔가 앱이 깔려있어서 전부 지우고 다시 했더니 해당 오류는 사라졌다.

3. 보안 오류: (:) [], PSSecurityException

해당 오류는 Visual Studio Code(VS Code) 에서 터미널을 이용했을 때 발생했다. cmd로 터미널 켜면 이리저리 왔다갔다 해야되는게 너무 번거로워서 VS Code에서 터미널을 켜고 작성했더니 다음 에러가 발생했다.

따라서 검색해보니 Window 스크립트 권한 문제라는 것을 알게 되었고 Powershell을 켜서 해당 문제를 Set-ExecutionPolicy RemoteSigned 명령어를 입력하면서 정상적으로 VS Code에서 터미널을 이용할 수 있게 되었다.

4. Failed to launch emulator. Reason: Emulator exited before boot..

해당 문제는 작성중까지도 해결이 안되었었다. 근데 캡쳐를 뜨기 위해서 실행을 했는데 오류 로그를 다시 살펴보니 Android 환경 변수 관련 문제였다. (adb 변수 관련 문제였던걸로 추정된다.)

출처 : https://programmersought.com/article/71283619713/

해당 오류가 뜬다고 실행이 안되는건 아니었다. 수동으로 AVD를 켜고 들어가서 앱을 실행하면 정상적으로 실행이 됐다. 근데 글을 쓰는 와중에도 찜찜해서 찾아보니까
platform-tools 경로를 환경변수에 설정해주라고 나와있었다. 그렇지만 해당 부분은 Android Studio를 깔면서 바로 해줬었다. 근데 사용자 변수에만 정의해주고 시스템 변수에는 정의해주지 않았는데 시스템 변수 Path 쪽에서 똑같이 설정해주었다.

그랬더니 오류가 바로 사라지고 AVD도 React가 실행되면서 곧잘 켜졌다. 그리고는 오류를 캡쳐하기 위해 시스템 변수에 적었던 설정을 삭제하고 다시금 react-native run android 명령어를 입력했는데 이게 왠걸 너무 잘되는 것이다. (개꿀잼 몰카..?)

이거 때문에 아까 카페에서 개고생한거 생각하면 치가 떨리는데 일단 고쳐졌으니 다행인거 같다....

결론


하루에 블로그 글 하나, Github 1 커밋을 목표로 잡았다. (Github 잔디 관리를 시작해야 될 것 같다.) 따라서 포트폴리오도 만들고 나중에 이직할 때 조금 더 좋은 곳으로 가기 위해서 지금 부터 차근 차근 준비를 해 나아갈 예정이다.

너무 오랜만에 앱 제작을 하게 되어서 아직 서툰 부분도 많고, 위에 설명한 부분 중에서도 지적사항이 있을 수 있다. 보시는 분이 계실지 모르겠지만 보고 지적해주시면 해당 부분 수정해서 반영할 수 있도록 하겠읍니다. 🙇‍♂️

과연 의지박약 junsugi가 기나긴 여정을 끝마칠 수 있을지...

폭풍전야.

내가 프로젝트를 끝마칠지는 결과가 말해줄 것이다.
profile
호주 워홀중

2개의 댓글

comment-user-thumbnail
2021년 2월 28일

파이팅입니다!

1개의 답글