안녕하세요, html 관련 궁금한 사항이 생겨 질문합니다! <p data-ke-size="size16">11</p> <div style="text-align: center;"> <div data-ke-type="moreLess" data-text-more="더보기" data-text-less="닫기"><a class="btn-toggle-moreless">더보기</a> <div class="moreless-content"> <p data-ke-size="size14">내용</p> </div> 접은 글을 중앙정렬 한 뒤, 여기서 따로 "내용"만 좌측정렬 할 수는 없을까요? 단순 문자는 이상 없이 중앙정렬이 되는데 제가 넣으려는 코드는 도저히 중앙정렬이 되지 않네요 ㅠ_ㅠ 도와주시면 감사 드리겠습니다.
강의에서 CommentListItem 컴포넌트를 만든 후에 CommentList 컴포넌트를 만들었는데, CommentListItem에서 comment를 props로 받는건 CommentList에 map에서 comments에서 배열을 하나씩 뽑을 때 사용할 이름 comment를 생각해두고 CommentListItem가 comment로 명명한 props를 받는건가요? 그리고 map에서 사용할 comment 처럼 쓰이는 것들도 그냥 변수라고 부르나요? index가 key 값으로 사용되지 않았는데 존재 이유는 무엇인가요?
안녕하세요 4일차 공부를 하던중 willpay를 cart 에서 밖으로 꺼내 willpay-index.tsx 로 변경하게 되면서 이러한 오류가 뜨면서 장바구니가 담아지지 않습니다.(장바구니가 비어있을 때는 비어있다는 텍스트는 출력이됩니다) 코드상 오류 표시는 안나는데 해결이 안되서 여쭤봅니다. 감사합니다.
템플릿 조각의 경로를 지정하는 코드에 의문이 생겨서 질문드립니다. 아래 2개의 코드는 실제로 돌려보니 같은 동작을 하는데, <div th:replace="~{template/fragment/footer :: copy}"></div> <div th:replace="~{/template/fragment/footer :: copy}"></div> 타임리프엔진이 특정 템플릿 조각을 가져올 때, 템플릿 조각이 어디있는지 찾는 경로는 상대경로나 절대경로 같은 개념이 없는 건가요?
Lombok의 @RequiredArgsConstructor 등을 사용해서 생성자를 하나만 만들었을 경우에는 생성자가 하나이므로 @Autowired를 생략해도 @Autowired가 적용된다고 이해하였습니다. 그런데 Lombok이나 직접 생성자를 추가로 생성해서 생성자가 2개 이상일 경우 Lombok으로 만든 생성자에는 @Autowired 어노테이션을 어떻게 달아주어야하나요? 감사합니다.
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
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. vs코드에선 문제없이 결과값이 잘 출력되는데 백준에서 채점을 하면 틀렸다고 나옵니다. 계속 고민하다가 어떤 것이 문제인지 잘 모르겠어서 이렇게 질문 드립니다 ㅜㅜ http://boj.kr/39e3a3ae1e12496c89bd1a369f199c12
안녕하세요. 어제부터 DeepingSauce님 로드맵을 갓 시작한 코린이 입니다. 금일 강의를 전부 결재하고 시작점에 섰는데 확인해보니 공부 환경상 Jupyter lab 활용이 불가능 하여 두가지 질문 드립니다. Colab 활용 가능성 수강 환경상 Jupyter Notebook은 쓸 수 있지만 Jupyter Lab의 사용이 불가능합니다. 그래서 Colab을 사용해볼까 하는데, 수업 진행에 무리가 없을런지 질문 드립니다. (수업내용을 보니 Jupyter에 Extention까지 설치해서 사용하던데 Colab이 해당 기능들을 다 지원할지 모르겠습니다.) Colab 설치 및 세팅방법 Colab이 활용 가능하다면 선생님 수업을 위해 (Jupyter Lab에서 했듯이) Colab의 설치 및 세팅방법도 알고 싶습니다. 혹시 가능하다면 안내 부탁 드립니다. 아는 지식이 짧아 있는 그대로 질문 드립니다.
첫번째 질문 class Monster { power = 10; constructor(aaa) { this.power = aaa; } attack = () => { console.log("공격하자!!"); console.log(`내 공격력은 ${this.power} 이야`); }; run = () => { console.log("도망가자!!"); }; } const mymonster1 = new Monster(20); mymonster1.attack(); mymonster1.run(); const mymonster2 = new Monster(); mymonster2.attack(); mymonster2.run(); //터미널 공격하자!! 내 공격력은 20 이야 도망가자!! 공격하자!! 내 공격력은 undefined 이야 도망가자!! 위와 같이 new Monster 하면서 생성자에 power 값을 넘겨주지 않으면 undefined 이 찍히는데, 저렇게 생성자가 있는 상황에서, 기본적으로 class 안에서 설정해 준 power 값 power = 10; 을 이용하려면 어떻게 해야 하나요? 두번째 질문 class Monster { power = 10; constructor(aaa) { this.power = aaa; } attack = () => { console.log("공격하자!!"); console.log("내 공격력은 " + this.power + " 이야!!!"); }; } class SkyMonster extends Monster { run = () => { console.log("날라서 도망가자!!"); }; } class GroundMonster extends Monster { run = () => { console.log("뛰어서 도망가자!!"); }; } const skymonster = new SkyMonster(10); skymonster.attack(); skymonster.run(); const groundmonster = new GroundMonster(30); groundmonster.attack(); groundmonster.run(); class Monster { power = 10; constructor(aaa) { this.power = aaa; } attack = () => { console.log("공격하자!!"); console.log("내 공격력은 " + this.power + " 이야!!!"); }; } class SkyMonster extends Monster { constructor(qqq) { super(qqq); } run = () => { console.log("날라서 도망가자!!"); }; } class GroundMonster extends Monster { constructor(www) { super(www); } run = () => { console.log("뛰어서 도망가자!!"); }; } const skymonster = new SkyMonster(10); skymonster.attack(); skymonster.run(); const groundmonster = new GroundMonster(30); groundmonster.attack(); groundmonster.run(); //터미널 공격하자!! 내 공격력은 10 이야!!! 날라서 도망가자!! 공격하자!! 내 공격력은 30 이야!!! 뛰어서 도망가자!! 위의 코드를 아래 코드로 바꾸면서 부모 생성자로 값을 넘겨주는 방법을 알려주셨는데 터미널에 찍히는 결과는 똑같은데 왜 저렇게 부모 생성자로 값을 넘겨줘야 하는지 이유를 잘 모르겠습니다.
이번 강의에서 나온 방법말고도 자바에서 동시성을 해결하는 방법 중에 쓰레드 로컬을 사용하는 방법도 있는 것으로 압니다. 근데 이번 재고감소 로직에서 적용해보려고 하니까 코드작성이 잘 안되더라구요. 이번 강의예제에서와 같이 계속 변수값이 변하는 상황에서는 쓰레드 로컬을 적용하기 어려운건가요?