inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

인터셉터 addInterceptors 가 어디서 호출이 되는건가요?

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오)네 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)네 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 네 [질문 내용] 여기에 질문 내용을 남겨주세요. package hello.login; import hello.login.web.argumentresolver.LoginMemberArgumentResolver; import hello.login.web.filter.LogFilter; import hello.login.web.filter.LoginCheckFilter; import hello.login.web.interceptor.LogInterceptor; import hello.login.web.interceptor.LoginCheckInterceptor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.method.support.HandlerMethodArgumentResolver; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import javax.servlet.Filter; import java.util.List; @Configuration public class WebConfig implements WebMvcConfigurer { @Override public void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers) { resolvers.add(new LoginMemberArgumentResolver()); } @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new LogInterceptor()) .order(1) .addPathPatterns("/**") .excludePathPatterns("/css/**", "/*.ico", "/error"); registry.addInterceptor(new LoginCheckInterceptor()) .order(2) .addPathPatterns("/**") .excludePathPatterns("/", "/members/add", "/login", "/logout", "/css/**", "/*.ico", "/error"); } // @Bean public FilterRegistrationBean logFilter() { FilterRegistrationBean<Filter> filterRegistrationBean = new FilterRegistrationBean<>(); filterRegistrationBean.setFilter(new LogFilter()); filterRegistrationBean.setOrder(1); filterRegistrationBean.addUrlPatterns("/*"); return filterRegistrationBean; } // @Bean public FilterRegistrationBean loginCheckFilter() { FilterRegistrationBean<Filter> filterRegistrationBean = new FilterRegistrationBean<>(); filterRegistrationBean.setFilter(new LoginCheckFilter()); filterRegistrationBean.setOrder(2); filterRegistrationBean.addUrlPatterns("/*"); return filterRegistrationBean; } } Configuration 이 Component이고 ComponentScan 대상이어서 빈으로 등록 된다고 이해하고있었는데 @Configuration 이 달려있고 WebMvcConfigurer 상속 받는 상태에서 addInterceptors 메소드를 오버라이드 해주기만 하면 서버구동시 컴파일 과정에서 스캔을하다 @Override addInterceptors 메소드가 있으면 내부적으로 조건에 맞을시 매 uri 호출마다 addInterceptors 를 자동으로 호출하는건가요? 따로 맵핑되어서 uri 같은걸로 호출되는것도 아닌것같은데 어디서 호출이 되는건가요? .addPathPatterns("/**") .excludePathPatterns("/css/**", "/*.ico", "/error"); 이부분은 이해가 가는데 여태 맵핑된 uri 로 찾아다니는거만 생각하다보니까 이해가 잘안되네요

  • mvc
  • spring
  • MVC
댓글 1 좋아요 0 조회수 524

한글 함수 깨짐 현상

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 있는데 해당 글 참고해서 설정 변경했는데 실행 자체가 안됩니다. 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 https://www.inflearn.com/questions/664806/intelli-j-%ED%95%9C%EA%B8%80-%EA%B9%A8%EC%A7%90 위의 글 참고해서 설정 변경해 보았지만 첨부한 사진과 같이 실행이 되지 않습니다. 스프링 부트 3.0 버전이상이라 jdk 17 버전 사용하고 있는 상황입니다. Execution failed for task ':test'. > There were failing tests. See the report at: file:///D:/인프런/hello-spring/build/reports/tests/test/index.html * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights.

  • java
  • mvc
  • spring-boot
  • spring
  • spring-boot
  • MVC
댓글 1 좋아요 0 조회수 341

템플릿 조각 경로

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

템플릿 조각의 경로를 지정하는 코드에 의문이 생겨서 질문드립니다. 아래 2개의 코드는 실제로 돌려보니 같은 동작을 하는데, <div th:replace="~{template/fragment/footer :: copy}"></div> <div th:replace="~{/template/fragment/footer :: copy}"></div> 타임리프엔진이 특정 템플릿 조각을 가져올 때, 템플릿 조각이 어디있는지 찾는 경로는 상대경로나 절대경로 같은 개념이 없는 건가요?

  • MVC
  • mvc
  • spring
세승 댓글 1 좋아요 0 조회수 470

pandas 로 csv 읽어서 django model 에 저장하는데 속도 느려지는 이슈 있음. 질문드립니다.

해결됨

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트

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

  • django
  • docker
  • react
  • python
su hyun JIN 댓글 1 좋아요 0 조회수 756

Jupyter lab 대신 Colab 활용 가능성?

해결됨

문과생도, 비전공자도, 누구나 배울 수 있는 파이썬(Python)!

안녕하세요. 어제부터 DeepingSauce님 로드맵을 갓 시작한 코린이 입니다. 금일 강의를 전부 결재하고 시작점에 섰는데 확인해보니 공부 환경상 Jupyter lab 활용이 불가능 하여 두가지 질문 드립니다. Colab 활용 가능성 수강 환경상 Jupyter Notebook은 쓸 수 있지만 Jupyter Lab의 사용이 불가능합니다. 그래서 Colab을 사용해볼까 하는데, 수업 진행에 무리가 없을런지 질문 드립니다. (수업내용을 보니 Jupyter에 Extention까지 설치해서 사용하던데 Colab이 해당 기능들을 다 지원할지 모르겠습니다.) Colab 설치 및 세팅방법 Colab이 활용 가능하다면 선생님 수업을 위해 (Jupyter Lab에서 했듯이) Colab의 설치 및 세팅방법도 알고 싶습니다. 혹시 가능하다면 안내 부탁 드립니다. 아는 지식이 짧아 있는 그대로 질문 드립니다.

  • python
wk 댓글 1 좋아요 0 조회수 503

db 생성이 안됩니다

해결됨

파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)

db 등록이 안되네요 윈도우입니다. https://yamea-guide.tistory.com/entry/atlas-MongoError-user-is-not-allowed-to-do-action-find-on 이 글 참고해서 해봤는데도 안되요 ㅠ

  • python
  • 동시성
  • 동시성
  • FastAPI
gusdnr598 댓글 1 좋아요 0 조회수 484

session을 model에 등록하지 않아도 되는 이유

해결됨

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

타임리프에서 제공하는 기본 객체들을 사용하는 강의에서 스프링 부트 3.0 이후로는 ${#request} 등을 지원하지 않기 때문에, model에 직접 addAttribute 해야한다고 하셨는데요. request, response, servletContext는 add 하는데, session은 add하지 않아도 되는 이유가 무엇인가요?

  • mvc
  • spring
  • MVC
세승 댓글 1 좋아요 1 조회수 2093

타임 리프 Expression Basic Objects 질문

해결됨

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

안녕하세요. 강의를 듣던중 궁금한점이 생겨 질문 드립니다. 강의에서 basic-objects 템플릿의 결과로 위와 같이 나왔었는데, 스프링 부트 3.0 이후의 코드로 수정하여 실행하였을 때는, 위와 같이 나왔습니다. session 에 해당하는 객체가 달라졌는데, 바뀐 이유가 있나요?

  • spring
  • mvc
  • MVC
세승 댓글 1 좋아요 0 조회수 649

static폴더에 index.html이 실행이 안돼요

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 실행엔 문제가 없는데...

  • MVC
  • spring
  • mvc
  • spring-boot
  • java
새싹 댓글 1 좋아요 0 조회수 677

강사님 강의때 사용하신 강의자료나 그림같은건 어디 있을까요 ?ㅠ

해결됨

파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)

강의 내용에 도움이 될거같아서 주소나 첨부자료 보내주시면 강의 들을때 같이 활용해보도록 하겠습니다 감사합니다

  • 동시성
  • FastAPI
  • 동시성
  • python
gusdnr598 댓글 1 좋아요 0 조회수 353

딕셔너리 value 값으로 key 값 찾

해결됨

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

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')]) 이거보다 더 효율적이고 간결한 방법이 있을 가요?

  • python
신봉균 댓글 1 좋아요 0 조회수 713

기댓값 - 406 Not Acceptable 오류

해결됨

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요. API 예외 처리 - 시작 강의 8:30 경에서 Postman으로 요청을 보낼때, Accept Header를 application/json 으로 설정하고 보내셨는데, HTML 로 응답이 오면 406 Not Acceptable 오류가 발생해야 할 것으로 기대했는데, 서버 내부에서 처리한 예외 오류가 HTML Page로 그대로 반환된 이유가 궁금하여 질문드리게 되었습니다. 감사합니다.

  • mvc
  • MVC
  • spring
김진규 댓글 1 좋아요 1 조회수 652

view resolve할 때 생성된 View에 대한 질문

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 질문 요약: controller에서 viewName을 리턴하고 나서 상황에 대한 궁금증인데요. resolve 후 리턴된 View가 빈인지 빈이면 scope가 어떤지 아니면 단순 개체인지가 궁금합니다. 다음은 제가 문제를 생각하게 된 상황인데요: JSP를 resolve할때 사용하는 InternalResourceViewResolver의 부모인 UrlBasedViewResolver가 있고 resolve한 후 리턴된 View는 스프링 빈이 맞는 것 같은데(UrlBasedViewResolver.applyLifecycleMethods()에서 빈 lifecycle method를 실행하는 것으로 미루어 추측. 실제 applicationContext에 빈 등록하는 코드는 찾지 못했습니다.) 그러면 /WEB-INF/file1.jsp /WEB-INF/file2.jsp 두개의 파일이 있고 각각 "file1", "file2"를 리턴하는 controller가 있어서 한 번씩 요청 됐을 때 반환되는 View는 빈인지 빈이면 scope이 어떻게 되는지 궁금합니다. 구체적으로: View가 다른이름 싱글턴 빈으로 두개가 생기고 계속 재활용 되는건가요 (가령 file1, file2라는 이름으로 각각 빈이 생기고 BeanNameViewResolver를 써서 재활용 한다든지) 아니면 request scoped 빈으로 그때마다 만들어지는건가요 아니면 InternalResourceView를 클래스로 갖는 싱글턴 빈 한개만 생기고 resolve 요청 올때마다 setUrl()로 url을 달리해서 넘기는 걸까요(이건 동시성 문제 같은게 있을 것 같습니다) 그것도 아니면 반환된 View는 빈이 아닌 단순 개체일까요(빈을 찾아보니 viewResolver나 viewNameTranslator는 있어도 view라고 끝나는 빈이 안 나오긴 했습니다. 스프링 Api doc을 봐도 UrlBasedViewResolver에 보면 createView(), instantiateView(), applyLifecycleMethods() 설명에도 view instance를 반환한다고 만 되어있고 View가 빈이란 언급은 없긴하네요)

  • mvc
  • MVC
  • spring
mrtorture 댓글 1 좋아요 0 조회수 707

findByName만 오류가 뜨는데 이유를 모르겠습니다..

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

============================== [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 다른거는 다 잘되는데 findByName만 오류가 뜨는데 이유를 모르겠습니다..

  • spring-boot
  • spring
  • mvc
  • MVC
  • java
H J 댓글 1 좋아요 0 조회수 490

'new-form' 404 에러 관련 질문

해결됨

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

코드 복사 붙이기도 해보고 재작성도 여러번 했는데 서블릿 MVC 회원목록만 계속 오류가 납니다.. 어떤 점이 문제인지 모르겠습니다..

  • spring
  • mvc
  • MVC
최보현 댓글 1 좋아요 1 조회수 554

Django Unit Test에서 Async Task 시 Default DB 사용 이슈

미해결

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트

unittest 기반의 Unit Test시 Celery 혹은 ProcessPoolExecutor을 이용하면 해당 Context에서 DB 접근 시, Test DB를 참조 하는 것이 아니라 settings의 Default로 설정해놓은 Exist DB에 접근하는 이슈가 있더군요. 해당하는 경우 어떻게 해야 Test DB로 붙어서 작업할 수 있을까요? with concurrent.futures.ProcessPoolExecutor() as executor:

  • docker
  • python
  • unittest
  • django
  • async
  • react
BJ원생 댓글 1 좋아요 1 조회수 426

configureHandlerExceptionResolvers을쓰면 안되는이유

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

왜 스프링이 제공하는 ExceptionResolver가 없어지면안되는건가요? 없어지면어떻게되는거죠?

  • mvc
  • spring
  • MVC
jjc5524 댓글 1 좋아요 0 조회수 629

th:onclick 질문

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

th:onclick="|location.href='@{/basic/items/{itemId}(itemId=${item.id})}'|" 을 간결하게 하고 싶어서 th:onclick="|location.href='@{/basic/items/${item.id}}'|" 이렇게 해봤는데 400에러가 뜨더라구요 onclick은 간결 표현식이 안되나요?

  • mvc
  • MVC
  • spring
gogoDevelop 댓글 1 좋아요 0 조회수 336

43강에서 id가 갑자기 사라졌는데요

미해결

스프링 프레임워크는 내 손에 [스프1탄]

분명히 성별의 id가 18분 전까지는 있었는데 갑자기 사라져서요 id를 제거해준 이유가 무엇인가요?

  • jsp
  • mvc
  • spring
  • MVC
  • spring-security
  • Spring Security
형종 댓글 1 좋아요 0 조회수 276

인기 태그

인프런 TOP Writers

주간 인기글