#1 서론
정말 수백번을 고민했던 것 같다.
장고를 끌고가야하나, 버리고 다른 걸로 가야하나.
그만큼 장고는 너무 매력이 많은 툴이였다.
하지만 툴 자체는 매력이 많지만 자바진영의 스프링은 설계, API 위주로 진짜 백엔드를 하는 느낌이고
JS 진영의 node.js등에 있어서도 API 등 설계에 대해서 기본적으로 알려주는데 반해서
장고는 국내외를 모두 포함해서 블로그 만들기가 99%다
1%마저도 쇼핑몰이 있긴한데 그건 너무 옛날이라서 약간만 설정이 달라도 작동도 안될 뿐더러
간편결제등으로 익숙해진 한국인인 나의 시각에서 봤을때, 너무 구시대적인 결제 시스템을 탑재하는 예제 뿐이였다.
사실 그것보다 더 큰 문제는, 어찌저찌 그런것들을 반복 숙달로 익힌다 하더라도 입문, 초급, 중급, 고급으로 가는 길에서
입문과 초급까지의 길만보이고 그 다음의 길은 보이지가 않는다는게 가장 큰 문제였다.
정말 신기하게도 장고에서는 모델설계나, 전체적인 설계에 대해서 딱 눈에 들어오게 알려주는 책과 강의를 단한건도 보지 못했다. "하다보면 알게된다." 뭐 그런 취지인것같은데, 솔직히 핑계라고 생각한다. 책이나 강의의 30%이상은 장고 공식문서에 나온 튜토리얼 등을 고대로 가져와서 설명해주는 것들도 많고, 아무튼 장고로 중급, 고급까지 가신 분들은 정말 대단하다고 생각된다.
그리고 장고는 파이썬 기반이니만큼 연동할 수 있는 여러가지들도 많을텐데 중도 탈락해서 아쉽긴 하다.
그럼에도 나는 상향평준화를 단계적으로 밟아가고 싶지, 불친절하고 유저가 점점 줄어드는 게임을 하고싶진 않다.
암튼 node.js는 Django 공부에서 느낀 해결되지 않는 갈증들이 너무 당연하게 있는 커리큘럼인데다가 풀스택으로 발전하기에 용이하다는 점등이 매력적이여서 시작하게 되었다.
#2 yarn init error
선생님이 이제 시작하는 강의에서 json 파일을 생성하기 위해서
yarn init
이라고 터미널에 입력하셨을때, 잘 작동되었다.
하지만 나는
(base) ➜ 01-05-token-count-api-facade-import git:(master) ✗ yarn -h
Usage: yarn [OPTIONS] SUBCOMMAND [SUBCOMMAND OPTIONS]
or yarn [OPTIONS] CLASSNAME [CLASSNAME OPTIONS]
where CLASSNAME is a user-provided Java class
OPTIONS is none or any of:
--buildpaths attempt to add class files from build tree
--config dir Hadoop config directory
--daemon (start|status|stop) operate on a daemon
--debug turn on shell script debug mode
--help usage information
--hostnames list[,of,host,names] hosts to use in worker mode
--hosts filename list of hosts to use in worker mode
--loglevel level set the log4j level for this command
--workers turn on worker mode
SUBCOMMAND is one of:
Admin Commands:
daemonlog get/set the log level for each daemon
node prints node report(s)
rmadmin admin tools
scmadmin SharedCacheManager admin tools
Client Commands:
applicationattempt prints applicationattempt(s) report
app|application prints application(s) report/kill application/manage long running application
classpath prints the class path needed to get the hadoop jar and the required libraries
cluster prints cluster information
container prints container(s) report
envvars display computed Hadoop environment variables
fs2cs converts Fair Scheduler configuration to Capacity Scheduler (EXPERIMENTAL)
jar <jar> run a jar file
logs dump container logs
nodeattributes node attributes cli client
queue prints queue information
schedulerconf Updates scheduler configuration
timelinereader run the timeline reader server
top view cluster information
version print the version
Daemon Commands:
nodemanager run a nodemanager on each worker
proxyserver run the web app proxy server
registrydns run the registry DNS server
resourcemanager run the ResourceManager
router run the Router daemon
sharedcachemanager run the SharedCacheManager daemon
timelineserver run the timeline server
SUBCOMMAND may print help when invoked w/o parameters or with -h.
이런 에러가 떴다.
#3 해결 과정
검색을 하다보니 yarn이라는 것은 비단 node.js에서만 쓰이는 것이 아니라 hadoop에서도 사용될 수 있으니,
이것들이 충돌되기 때문에 발생하는 문제라고 한다.
이때 문득 생각이 났다. 예전에 데이터 엔지니어링을 시도할때 hadoop을 설치했다는 것을.
그래서 나는
brew list
라고 입력해서 리스트를 봤다.
hadoop이 있었고
brew uninstall hadoop
으로 hadoop을 삭제했다.
그리고 다시
yarn init
을 해주었더니
zsh: command not found: yarn
라고 나왔다.
이 메세지를 보자마자 생각이 들었다.
"아 yarn이 하둡에 껴있던게 맞았구나"
그리고 어찌저찌 또 정보를 찾아봤다.
섵부르게 yarn을 설치했다가는 이와같은 꼬이는 문제가 또 있을 수도 있음을 우려했던 것이였다.
그래도 결과적으로 yarn 공식문서를 보니
yarn을 설치하면 된다고 해서
brew install yarn
으로 다시 yarn을 별도로 설치해주었고
이제는 정상적으로 작동이 된다.
#4 남은 과제
추후에 hadoop을 하기전에는 node.js의 yarn과 hadoop의 yarn이 충돌되지 않게끔
캡슐화 하는 방법도 연구를 해야겠다.
(지금 당장은 중요한게 아니니 패스!!)
'개발일지 > 임시카테고리' 카테고리의 다른 글
정보처리기사 1회 필기 후기 (과락 불합격) (1) | 2023.02.20 |
---|---|
Javascript - 백틱 입력이 안될때(`₩) (0) | 2023.02.10 |
Django에 관하여 (ft. 근본적인 백엔드적 원리에 필요한 것) (0) | 2023.02.10 |
Django - OperationalError at /post/no such table: instagram_post (0) | 2023.02.06 |
마음가짐 - 배움의 자세에 대하여 (0) | 2023.02.01 |