자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
리눅스에 오류 뜨는 것도 없고 제목도 도서관리 애플리케이션이라고 나오는데 HTML 폼이 나오질 않습니다. Integllij에서 실행하면 잘 실행이 되는데 왜 이럴까요? ./gradlew clean 이후 다시 ./gradlew build -x test로 다시 해봤는데도 안됩니다..
cli 명령을 이용해서 하려합니다. docker, django, python==3.9버전이라서 eb가 3.8까지만 지원해서 docker를 쓸 수 밖에 없더라고요. 그래서 위와같이 구성해서 배포하려니까 자꾸 에러가 나는데, 에러 확인이 잘 안됩니다. Command failed on instance. Return code: 1 Output: Engine execution has encountered an error.. 2023-02-14 13:13:25 INFO Command execution completed on all instances. Summary: [Successful: 0, Failed: 1]. 2023-02-14 13:14:28 ERROR Create environment operation is complete, but with errors. For more information, see troubleshooting documentation. ERROR: ServiceError - Create environment operation is complete, but with errors. For more information, see troubleshooting documentation. 이렇게만 나와서요. 대부분 elastic beanstalk를 docker를 이용해서 하실텐데 이를 배포하는 방법 좀 알려주세요 ㅠㅠ 디렉토리에는 .elasticbeanstalk에 eb 설정을 Dockerfile, Dockerun.aws .json 파일도 만들었습니다 해결) 계속해서 에러가 났던 이유가 git add commit을 안하고 eb deploy만 해서 코드 변경사항이 적용 안되고 있었네요 ㅋㅋㅋ;;
200여개의 csv 파일이 있습니다. (용량은 각각 1메가에서 120메가 - 최대 100만건 데이터 등등 ). 결측치 가 있어서 판다스 에서 불러들여서 정리하고 for 반복문으로 파일 개별적으로 읽어 들여와 장고 모델에 save() 로 입력시키는 작업을 진행하고 있습니다. 초반 10여개 파일까지는 제법 속도가 나오는데 (7만행 데이터 20분 소요) 이후로 속도가 급격하게 감소해서 24시간 돌려서 30메가 파일 겨우 저장 중입니다(1건에 1초씩 걸리네요 ㅠㅠ). 개발중이라 로컬에 있는 장고 내장 sqlite 사용 했습니다. 속도를 좀 더 빠르게 하는 방법이 있을까요? 3일째 검색 해봤는데 별다른 해결책이 보이지 않아서 질문 남겨 봅니다. app.py # new 폴더에 정리된 csv 파일을 읽어서 DB에 저장 import pandas as pd # django 프로젝트에 있는 settings.py 파일을 읽어서 환경변수로 설정 import os os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dbking.settings") import django django.setup() #django 프로젝트에 있는 models.py 파일에서 BasicData 클래스를 읽어온다 from common.models import BasicData # new 폴더에 있는 파일명을 읽어서 product 변수에 리스트에 저장 product_list = os.listdir("./script/newdb") # product_list 에 csv 파일 정렬(오름차순) for x in product_list: # csv 파일 하나씩 읽어오기 df = pd.read_csv("./script/newdb/" + x, encoding="cp949") # 결측치를 0으로 채운다 df = df.fillna(0) for a in list_of_csv: # 파일마다 컬럼수가 달라서 remark1, remark2 라는 예비컬럼 2개 추가 # -> 인덱스 에러 나는 경우 0 으로 저장 if a[16] is None: a.insert(16, 0) a.insert(17, 0) elif a[17] is None: a.insert(17, 0) # DB에 저장 try: db_insert = BasicData( opnSvcId = a[2], opnSfTeamCode = a[3], mgtNo = a[4], fileNumber = fileNumber, businessType = businessType, opnSvcNm = a[1], apvPermYmd = a[5], confirmNumber = a[6], businessCondition = a[7], siteTel = a[8], sitePostNo = a[9], siteWhlAddr = a[10], rdnWhlAddr = a[11], rdnPostNo = a[12], bplcNm = a[13], latitude = a[14], longitude = a[15], remark1 = a[16], remark2 = a[17], ) i += 1 # print(i) except Exception as e: print("쿼리", e) continue #DB에 저장 입력 try: db_insert.save() except Exception as e: print("저장중에러",e) continue from django.db import models class BasicData(models.Model): # 개방서비스아이디 opnSvcId = models.CharField(max_length=100) #개방자치단체코드 opnSfTeamCode = models.CharField(max_length=10) # 관리번호 mgtNo = models.CharField(max_length=100) #파일번호 fileNumber = models.IntegerField() #업종명 businessType = models.CharField(max_length=100) #개방서비스명 opnSvcNm = models.CharField(max_length=100) #인허가일자 apvPermYmd = models.DateField() #영업상태구분코드(1-정상, 2-폐업, 3-휴업, 4-전환) confirmNumber = models.IntegerField() #영업상태명 businessCondition = models.CharField(max_length=100) #소재지전화 siteTel = models.CharField(max_length=100) #우편번호 sitePostNo = models.CharField(max_length=100) #주소 siteWhlAddr = models.CharField(max_length=100) #도로명주소 rdnWhlAddr = models.CharField(max_length=100) #도로명우편번호 rdnPostNo = models.CharField(max_length=100) #사업장명 bplcNm = models.CharField(max_length=100) # 위도 latitude = models.FloatField() # 경도 longitude = models.FloatField() #비고1 remark1 = models.CharField(max_length=100) #비고2 remark2 = models.CharField(max_length=100) # 생성시점 created = models.DateTimeField(auto_now_add=True) update = models.DateTimeField(auto_now=True) def save(self, *args, **kwargs): queryset = BasicData.objects.filter(mgtNo__exact=self.mgtNo) # 중복된 이름이 없을 때만 저장 if len(queryset) == 0: super().save(*args, **kwargs) print('> Created new category') # if '&' in self.addr: # self.addr = self.addr.replace('&', ' ') # self.save() # 중복된 카테고리 있을 시 저장 안함 else: print('> Cannot create category with existing name') def __str__(self): return self.name
안녕하세요. 어제부터 DeepingSauce님 로드맵을 갓 시작한 코린이 입니다. 금일 강의를 전부 결재하고 시작점에 섰는데 확인해보니 공부 환경상 Jupyter lab 활용이 불가능 하여 두가지 질문 드립니다. Colab 활용 가능성 수강 환경상 Jupyter Notebook은 쓸 수 있지만 Jupyter Lab의 사용이 불가능합니다. 그래서 Colab을 사용해볼까 하는데, 수업 진행에 무리가 없을런지 질문 드립니다. (수업내용을 보니 Jupyter에 Extention까지 설치해서 사용하던데 Colab이 해당 기능들을 다 지원할지 모르겠습니다.) Colab 설치 및 세팅방법 Colab이 활용 가능하다면 선생님 수업을 위해 (Jupyter Lab에서 했듯이) Colab의 설치 및 세팅방법도 알고 싶습니다. 혹시 가능하다면 안내 부탁 드립니다. 아는 지식이 짧아 있는 그대로 질문 드립니다.
a = {'Phone': '01095136634', 'birth': '910904', 'adress': 'Busan', 'rank': [1, 2, 3], 'test': 'test_dict'} a라는 딕셔너리에서 910904라는 value값을 통해 key 값을 찾아서 출력 하고 싶습니다. 제가 생각 해낸 방법은 딕셔너리에는 순서가 없음으로 리스트로 형 변환을 하여 해당하는 인덱스를 불러오는 방법을 사용했습니다. print(list(a.keys())[list(a.values()).index('910904')]) 이거보다 더 효율적이고 간결한 방법이 있을 가요?
MySQL Workbench 까지 확인 됐고요. (3) 번 실행 하면 아래 에러가 발생합니다. PS C:\Users\esc0\Desktop\saju\saju-backend-nodejs> npm run start > saju-backend-nodejs@1.0.0 start > cross-env NODE_ENV=prod PORT=3000 node server.js 3000 번 포트에서 대기중 ConnectionError [SequelizeConnectionError]: Unknown database 'saju-db-prod' at ConnectionManager.connect (C:\Users\esc0\Desktop\saju\saju-backend-nodejs\node_modules\sequelize\lib\dialects\mysql\connection-manager.js:102:17) at processTicksAndRejections (node:internal/process/task_queues:96:5) at async ConnectionManager._connect (C:\Users\esc0\Desktop\saju\saju-backend-nodejs\node_modules\sequelize\lib\dialects\abstract\connection-manager.js:220:24) at async C:\Users\esc0\Desktop\saju\saju-backend-nodejs\node_modules\sequelize\lib\dialects\abstract\connection-manager.js:174:32 at async ConnectionManager.getConnection (C:\Users\esc0\Desktop\saju\saju-backend-nodejs\node_modules\sequelize\lib\dialects\abstract\connection-manager.js:197:7) at async C:\Users\esc0\Desktop\saju\saju-backend-nodejs\node_modules\sequelize\lib\sequelize.js:301:26 at async MySQLQueryInterface.tableExists (C:\Users\esc0\Desktop\saju\saju-backend-nodejs\node_modules\sequelize\lib\dialects\abstract\query-interface.js:102:17) at async Function.sync (C:\Users\esc0\Desktop\saju\saju-backend-nodejs\node_modules\sequelize\lib\model.js:939:21) at async Sequelize.sync (C:\Users\esc0\Desktop\saju\saju-backend-nodejs\node_modules\sequelize\lib\sequelize.js:373:9) { parent: Error: Unknown database 'saju-db-prod' at Packet.asError (C:\Users\esc0\Desktop\saju\saju-backend-nodejs\node_modules\mysql2\lib\packets\packet.js:728:17) at ClientHandshake.execute (C:\Users\esc0\Desktop\saju\saju-backend-nodejs\node_modules\mysql2\lib\commands\command.js:29:26) at Connection.handlePacket (C:\Users\esc0\Desktop\saju\saju-backend-nodejs\node_modules\mysql2\lib\connection.js:456:32) at PacketParser.onPacket (C:\Users\esc0\Desktop\saju\saju-backend-nodejs\node_modules\mysql2\lib\connection.js:85:12) at PacketParser.executeStart (C:\Users\esc0\Desktop\saju\saju-backend-nodejs\node_modules\mysql2\lib\packet_parser.js:75:16) at Socket.<anonymous> (C:\Users\esc0\Desktop\saju\saju-backend-nodejs\node_modules\mysql2\lib\connection.js:92:25) at Socket.emit (node:events:390:28) at addChunk (node:internal/streams/readable:315:12) at readableAddChunk (node:internal/streams/readable:289:9) at Socket.Readable.push (node:internal/streams/readable:228:10) { code: 'ER_BAD_DB_ERROR', errno: 1049, sqlState: '42000', sqlMessage: "Unknown database 'saju-db-prod'", sql: undefined }, original: Error: Unknown database 'saju-db-prod' at Packet.asError (C:\Users\esc0\Desktop\saju\saju-backend-nodejs\node_modules\mysql2\lib\packets\packet.js:728:17) at ClientHandshake.execute (C:\Users\esc0\Desktop\saju\saju-backend-nodejs\node_modules\mysql2\lib\commands\command.js:29:26) at Connection.handlePacket (C:\Users\esc0\Desktop\saju\saju-backend-nodejs\node_modules\mysql2\lib\connection.js:456:32) at PacketParser.onPacket (C:\Users\esc0\Desktop\saju\saju-backend-nodejs\node_modules\mysql2\lib\connection.js:85:12) at PacketParser.executeStart (C:\Users\esc0\Desktop\saju\saju-backend-nodejs\node_modules\mysql2\lib\packet_parser.js:75:16) at Socket.<anonymous> (C:\Users\esc0\Desktop\saju\saju-backend-nodejs\node_modules\mysql2\lib\connection.js:92:25) at Socket.emit (node:events:390:28) at addChunk (node:internal/streams/readable:315:12) at readableAddChunk (node:internal/streams/readable:289:9) at Socket.Readable.push (node:internal/streams/readable:228:10) { code: 'ER_BAD_DB_ERROR', errno: 1049, sqlState: '42000', sqlMessage: "Unknown database 'saju-db-prod'", sql: undefined } } C:\Users\esc0\Desktop\saju\saju-backend-nodejs\server.js:29 throw new Error("Mysql 연결 에러!"); ^ Error: Mysql 연결 에러! at C:\Users\esc0\Desktop\saju\saju-backend-nodejs\server.js:29:13 at processTicksAndRejections (node:internal/process/task_queues:96:5)
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
안녕하세요 선생님! 프론트엔드를 공부하다 백엔드도 하고자 하여 공부를 하고 있는 대학생입니다. 자바를 좀 더 깊이 있게 공부를 하고자하는데 추천해주실만한 책이나 강의가 있으실까요? (선생님의 자바 강의가 있다면 좋겠지만 없으셔서 질문드리게 되었습니다) 또한, 자바를 어떻게 공부하면 좋을지에 대한 방향도 추천해주시면 감사하겠습니다! 마지막으로 개발관련 서적 중 실력 향상에 도움이 되셨던 서적이 있으신가요?
unittest 기반의 Unit Test시 Celery 혹은 ProcessPoolExecutor을 이용하면 해당 Context에서 DB 접근 시, Test DB를 참조 하는 것이 아니라 settings의 Default로 설정해놓은 Exist DB에 접근하는 이슈가 있더군요. 해당하는 경우 어떻게 해야 Test DB로 붙어서 작업할 수 있을까요? with concurrent.futures.ProcessPoolExecutor() as executor:
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
안녕하세요 강의 잘 듣고 있습니다!! 강의에서 배포를 위해 Java, git, mysql 이렇게 세가지 프로그램을 설치했는데 만약 데이터베이스를 oracle을 사용한다면 mysql이 아닌 oracle을 설치하면 되는걸까요?? 그리고 스프링부트의 dependencies를 통해 여러가지 라이브러리들이 자동으로 설치되는데 jar파일을 EC2에서 실행하면 자동으로 똑같이 라이브러리들(mybatis, websocket 등등)이 설치되는게 맞는걸까요?? 한번 시도해보고 싶어서 질문 드립니다!!
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
안녕하세요 강의 잘 듣고 있습니다~ 44강까지는 잘 따라가서 mysql까지 설치를 완료 했는데 git clone https://github.com/kgm7642/library-app.git 명령어를 입력하니까 -bash: git: command not found 오류가 뜨는데 어떻게 해결하면 좋을까요..??