묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
UserView에 id 속성만 undefined로 넘어오는데 이유를 모르겠습니다..
위 스샷처럼 id만 undefined로 넘어옵니다..https://api.hnpwa.com/v0/user/titaniumtown.json해당 주소로 요청을 보내면 제대로 id까지 나오는데.. 이유를 도저히 모르겠습니다... 해당 위치에서 console을 찍었을 때 이미 id는 undefined로 받은 상태입니다
-
미해결
Vue.js에대해 질문 드려용
Vue.js 가1. 해당 컴포넌트 name 설정예시)export default { name: 'BoardComponent', data() { return { newBoardItems: [], } }, mounted() { this.fetchData(); }, methods: { fetchData() { axios.get('/api/board') .then(response => { console.log(response.data); this.newBoardItems = response.data; }) .catch(error => { console.error('Error fetching data:', error); }); }, }}</script>컴포넌트에서 name: 이렇게 지정함2. router 에서 컴포넌트 지정예시) { path: '/classboarddetail/:ClassID', name: 'classboarddetail', component: ClassBoardDetailComponent, props: true },3. 컨트롤러 만들기 (터미널)Vue CLI 설치: Vue CLI를 사용하려면 먼저 설치해야 합니다. 터미널 또는 명령 프롬프트에서 다음 명령어를 실행합니다.bashCopy codenpm install -g @vue/cli프로젝트 생성: Vue CLI가 설치되었으면, 새로운 Vue.js 프로젝트를 생성합니다.bashCopy codevue create my-vue-project위 명령어에서 my-vue-project는 프로젝트 디렉토리의 이름으로 변경할 수 있습니다.프로젝트 생성 과정: vue create 명령어를 실행하면 몇 가지 설정 옵션을 선택할 수 있습니다. 프로젝트 생성에 필요한 기본 설정을 선택하거나, 사용자 정의 설정을 할 수 있습니다.프로젝트로 이동: 생성된 프로젝트 디렉토리로 이동합니다.bashCopy codecd my-vue-project프로젝트 실행: 프로젝트 디렉토리로 이동한 후, 다음 명령어로 개발 서버를 실행할 수 있습니다.bashCopy codenpm run serve4. 쿼리문 작성 -> 해당값을 $data에 담아서 log::debug($data);로 확인 take(숫자)로 제한걸기class BoardController extends Controller{ public function getBoardMainData() { $data = Board::orderBy('created_at', 'desc') ->take(50) ->get(); Log::debug($data); return response()->json($data); } }5. api.php 에서 경로 지정(router에서 해당 url 정한것 안에서 실행시킨다는것을 작성) (컨트롤러에서는 값을 받아옴 json 형태)import ClassBoardDetailComponent from '../components/ClassBoardDetailComponent.vue'; { path: '/classboarddetail/:ClassID', name: 'classboarddetail', component: ClassBoardDetailComponent, props: true },6. axios 처리 component 에서 methods 생성 후 axios 처리 ('/api/board') 컨트롤러에서 쿼리 실행 .then 안에 console.log로 확인 -> mounted()실행 시키겠는 경로 설정 (호출, 리로드 하면서 안에 담김)export default { name: 'BoardComponent', data() { return { newBoardItems: [], } }, mounted() { this.fetchData(); }, methods: { fetchData() { axios.get('/api/board') .then(response => { console.log(response.data); this.newBoardItems = response.data; }) .catch(error => { console.error('Error fetching data:', error); }); }, }}7. Component 에서 for 문 돌리는 item 에 Boardercontents item 을 넣어줌 {{ }}예시)<dd class="comment_count"><i>추천수 {{ item.BoardRecommended }}</i><span>{{item.Boardgoodcount}}</span> 크롬 콘솔에서 더미데이터 이름 확인 후 기입집에가서 터미널 하나 더 열어서 npm run watch1. >npm run watch2. >php serve artisan이런 흐름이 맞나용
-
미해결Java/Spring 주니어 개발자를 위한 오답노트
외래키를 지양하라는 질문에 대한 궁금증
외래키 사용을 지양하라는 내용이 있어서 링크된 글을 읽어봤는데 궁금증이 있습니다. 외래키를 지양한다면 PK 값을 다른 테이블에 넣으면서 그 값으로 조인을 사용하는건가요?외래키를 지양했을 때 성능상의 이점은 알겠는데 결국 데이터 정합성 부분에서 문제가 발생합니다. RDB에서 데이터 정합성이 깨지면 사용하는 의미가 없다고 하는데 이부분에선 어떻게 생각하시나요?외래키를 안쓸경우 JPA에서 ManyToOne같은 메소드도 사용하지 않는건가요?그리고 해당 주장에 대해 반박하는 아래의 링크도 있는데 이 의견은 어떠신가요?https://gdsc-university-of-seoul.github.io/foreign-key/
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
예외처리 질문
try { Thread.sleep(1000); } catch (InterruptedException e) { throw new RuntimeException(e); } 이 코드를 실행하면 왜 밑에있는 출력문이 10개가 나오는지 궁금합니다 HikariPool-1 connection adder] DEBUG com.zaxxer.hikari.pool.HikariPool -- HikariPool-1 - Added connection conn1: url=jdbc:h2:tcp://localhost/~/test user=SA
-
미해결동영상으로 배우는 Catia Sketcher Workbench (Catia V5-6R2017)
학습 첨부파일 확인 불가
안녕하세요 수강생입니다.현재 첨부파일이 보이지 않아 다운이 불가합니다확이 부탁드립니다.
-
해결됨초보자를 위한 ChatGPT API 활용법 - API 기본 문법부터 12가지 프로그램 제작 배포까지
Ch08 / dalle-2모델 사용관련..
안녕하세요 추가적으로 궁금한점이 있어서 질문드립니다.ch08파일에 01번 버전이 2가지가 있는데요.01_dalle_exp 파일의경우 처음에는 에러가 났다가 에러잡고 사용하니까 정상출력이되는데..01_dalle_exp_NewVersion 파일의 경우 client = openai.OpenAI(api_key = API_KEY)AttributeError: module 'openai' has no attribute 'OpenAI' 라고 나오는데.. 같은 key값을 활용해도 뉴버전은 저렇게 나옵니다. 이유가 무엇인지 궁금하네요.
-
해결됨초보자를 위한 ChatGPT API 활용법 - API 기본 문법부터 12가지 프로그램 제작 배포까지
Ch08-02~03 파일 / 인스타그램 IP차단 과련..
안녕하세요어제 Ch07번은 해결했는데요.... Ch08의 인스타그램의 경우 봇으로 판단하는지 차단시키는데 해결방안이 무엇인지 궁금합니다. 코드는 사용예제 코드랑 같고 02~03 파일 둘다 차단관련 내용이 나옵니다.오류 내용입니다.ProxyAddressIsBlocked: Instagram has blocked your IP address, use a quality proxy provider (not free, not shared)Traceback:File "C:\Users\sosgx\Desktop\Project\python_Project_OpenAi\inflearn_chatGPT-main\ch08\03_instabot_app.py", line 136, in <module> main()File "C:\Users\sosgx\Desktop\Project\python_Project_OpenAi\inflearn_chatGPT-main\ch08\03_instabot_app.py", line 132, in main uploadinstagram(st.session_state["description"])File "C:\Users\sosgx\Desktop\Project\python_Project_OpenAi\inflearn_chatGPT-main\ch08\03_instabot_app.py", line 24, in uploadinstagram cl.login(st.session_state["instagram_ID"], st.session_state["instagram_Password"])File "C:\Users\sosgx\Desktop\Project\python_Project_OpenAi\inflearn_chatGPT-main\ch08\ch08_env\lib\site-packages\instagrapi\mixins\auth.py", line 441, in login logged = self.private_request("accounts/login/", data, login=True)File "C:\Users\sosgx\Desktop\Project\python_Project_OpenAi\inflearn_chatGPT-main\ch08\ch08_env\lib\site-packages\instagrapi\mixins\private.py", line 542, in private_request raise eFile "C:\Users\sosgx\Desktop\Project\python_Project_OpenAi\inflearn_chatGPT-main\ch08\ch08_env\lib\site-packages\instagrapi\mixins\private.py", line 527, in private_request self._send_private_request(endpoint, **kwargs)File "C:\Users\sosgx\Desktop\Project\python_Project_OpenAi\inflearn_chatGPT-main\ch08\ch08_env\lib\site-packages\instagrapi\mixins\private.py", line 447, in _send_private_request raise ProxyAddressIsBlocked(**last_json)
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
application.properties 안에 작성하는 것이 아니라 yml 파일로 두는 것인가요?
안녕하세요~! 질문이 있어 이렇게 남깁니다. 다른 답글을 보니 다양한 설정 방법이 있다라는 말씀을 남겨주셨는데 제가 다운 받은 springboot 에는 application.properties가 따로 있는데 이것과 병행해서 사용해도 문제가 없는 건가요? 아니면 환경설정을 하나로만 유지해야 되는건가요?
-
해결됨Flutter 앱 개발 기초
에뮬레이터 관련 질문입니다
처음엔 이 바가 보였는데 어느순간 부터 안보이더라구요.있던게 안보이니 괜히 불안해서 다시 보이게 하는법을 알고싶습니다...;;오픈 카카오톡으로 문의주시면 더 빠르게 답변 받으실 수 있어요 :)
-
해결됨최신 딥러닝 기술과 객체인식
yolov4 bifpn
안녕하세요 yolov4 bifpn에서 input과 다른 여러 scale의 이미지를 합치는데 resize해서 concat하는 건가요 아니면 그냥 element sumwise하는건가요?!
-
미해결다양한 사례로 익히는 SQL 데이터 분석
pandas 연계시 오류.....
(아나콘다를 깔고나서 새 파일에서 뭘 수정하려고하면 바로 연결이 끊기는 문제가 생겨 주피터 노트북으로 설치하였습니다. 필요한 라이브러리들은 모두 따로 설치하였습니다.)버전은 아래와 같습니다.오류가 발생하는 부분은 이 부분인데query문이 있는 셀의 전체 오류문은 아래와 같습니다--------------------------------------------------------------------------- UnicodeDecodeError Traceback (most recent call last) Cell In[12], line 4 1 query = """ 2 select * from nw.customers 3 """ ----> 4 df = pd.read_sql_query(sql=query, con=postgres_engine) 5 df.head(10) File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\pandas\io\sql.py:485, in read_sql_query(sql, con, index_col, coerce_float, params, parse_dates, chunksize, dtype, dtype_backend) 482 dtype_backend = "numpy" # type: ignore[assignment] 483 assert dtype_backend is not lib.no_default --> 485 with pandasSQL_builder(con) as pandas_sql: 486 return pandas_sql.read_query( 487 sql, 488 index_col=index_col, (...) 494 dtype_backend=dtype_backend, 495 ) File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\pandas\io\sql.py:851, in pandasSQL_builder(con, schema, need_transaction) 848 raise ImportError("Using URI string without sqlalchemy installed.") 850 if sqlalchemy is not None and isinstance(con, (str, sqlalchemy.engine.Connectable)): --> 851 return SQLDatabase(con, schema, need_transaction) 853 warnings.warn( 854 "pandas only supports SQLAlchemy connectable (engine/connection) or " 855 "database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 " (...) 858 stacklevel=find_stack_level(), 859 ) 860 return SQLiteDatabase(con) File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\pandas\io\sql.py:1576, in SQLDatabase.__init__(self, con, schema, need_transaction) 1574 self.exit_stack.callback(con.dispose) 1575 if isinstance(con, Engine): -> 1576 con = self.exit_stack.enter_context(con.connect()) 1577 if need_transaction and not con.in_transaction(): 1578 self.exit_stack.enter_context(con.begin()) File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\engine\base.py:3268, in Engine.connect(self) 3245 def connect(self) -> Connection: 3246 """Return a new :class:`_engine.Connection` object. 3247 3248 The :class:`_engine.Connection` acts as a Python context manager, so (...) 3265 3266 """ -> 3268 return self._connection_cls(self) File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\engine\base.py:145, in Connection.__init__(self, engine, connection, _has_events, _allow_revalidate, _allow_autobegin) 143 if connection is None: 144 try: --> 145 self._dbapi_connection = engine.raw_connection() 146 except dialect.loaded_dbapi.Error as err: 147 Connection._handle_dbapi_exception_noconnection( 148 err, dialect, engine 149 ) File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\engine\base.py:3292, in Engine.raw_connection(self) 3270 def raw_connection(self) -> PoolProxiedConnection: 3271 """Return a "raw" DBAPI connection from the connection pool. 3272 3273 The returned object is a proxied version of the DBAPI (...) 3290 3291 """ -> 3292 return self.pool.connect() File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\pool\base.py:452, in Pool.connect(self) 444 def connect(self) -> PoolProxiedConnection: 445 """Return a DBAPI connection from the pool. 446 447 The connection is instrumented such that when its (...) 450 451 """ --> 452 return _ConnectionFairy._checkout(self) File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\pool\base.py:1269, in _ConnectionFairy._checkout(cls, pool, threadconns, fairy) 1261 @classmethod 1262 def _checkout( 1263 cls, (...) 1266 fairy: Optional[_ConnectionFairy] = None, 1267 ) -> _ConnectionFairy: 1268 if not fairy: -> 1269 fairy = _ConnectionRecord.checkout(pool) 1271 if threadconns is not None: 1272 threadconns.current = weakref.ref(fairy) File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\pool\base.py:716, in _ConnectionRecord.checkout(cls, pool) 714 rec = cast(_ConnectionRecord, pool._do_get()) 715 else: --> 716 rec = pool._do_get() 718 try: 719 dbapi_connection = rec.get_connection() File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\pool\impl.py:169, in QueuePool._do_get(self) 167 return self._create_connection() 168 except: --> 169 with util.safe_reraise(): 170 self._dec_overflow() 171 raise File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\util\langhelpers.py:146, in safe_reraise.__exit__(self, type_, value, traceback) 144 assert exc_value is not None 145 self._exc_info = None # remove potential circular references --> 146 raise exc_value.with_traceback(exc_tb) 147 else: 148 self._exc_info = None # remove potential circular references File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\pool\impl.py:167, in QueuePool._do_get(self) 165 if self._inc_overflow(): 166 try: --> 167 return self._create_connection() 168 except: 169 with util.safe_reraise(): File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\pool\base.py:393, in Pool._create_connection(self) 390 def _create_connection(self) -> ConnectionPoolEntry: 391 """Called by subclasses to create a new ConnectionRecord.""" --> 393 return _ConnectionRecord(self) File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\pool\base.py:678, in _ConnectionRecord.__init__(self, pool, connect) 676 self.__pool = pool 677 if connect: --> 678 self.__connect() 679 self.finalize_callback = deque() File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\pool\base.py:902, in _ConnectionRecord.__connect(self) 900 self.fresh = True 901 except BaseException as e: --> 902 with util.safe_reraise(): 903 pool.logger.debug("Error on connect(): %s", e) 904 else: 905 # in SQLAlchemy 1.4 the first_connect event is not used by 906 # the engine, so this will usually not be set File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\util\langhelpers.py:146, in safe_reraise.__exit__(self, type_, value, traceback) 144 assert exc_value is not None 145 self._exc_info = None # remove potential circular references --> 146 raise exc_value.with_traceback(exc_tb) 147 else: 148 self._exc_info = None # remove potential circular references File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\pool\base.py:898, in _ConnectionRecord.__connect(self) 896 try: 897 self.starttime = time.time() --> 898 self.dbapi_connection = connection = pool._invoke_creator(self) 899 pool.logger.debug("Created new connection %r", connection) 900 self.fresh = True File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\engine\create.py:637, in create_engine.<locals>.connect(connection_record) 634 if connection is not None: 635 return connection --> 637 return dialect.connect(*cargs, **cparams) File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\sqlalchemy\engine\default.py:616, in DefaultDialect.connect(self, *cargs, **cparams) 614 def connect(self, *cargs, **cparams): 615 # inherits the docstring from interfaces.Dialect.connect --> 616 return self.loaded_dbapi.connect(*cargs, **cparams) File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\psycopg2\__init__.py:122, in connect(dsn, connection_factory, cursor_factory, **kwargs) 119 kwasync['async_'] = kwargs.pop('async_') 121 dsn = _ext.make_dsn(dsn, **kwargs) --> 122 conn = _connect(dsn, connection_factory=connection_factory, **kwasync) 123 if cursor_factory is not None: 124 conn.cursor_factory = cursor_factory UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb8 in position 63: invalid start byte
-
해결됨Next + React Query로 SNS 서비스 만들기
x.com에 모달창에 url을 적용시킨 이유가 있을까요?
x.com 을 보면 로그인도 그렇고 게시글 올릴때도 그렇고 모달창이 뜰때마다 그냥 화면에 띄우는 방식이 아니라 저렇게 모달창을 띄울수 있는 url 따로 만든 이유가 뭘까요? 관리가 더 편해서일까요?
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
코드 리뷰 부탁드립니다 :)
안녕하세요 선생님 😀강의 잘 보고 있습니다.저는 count 변수를 두고 값을 저장하고 i값을 변경하여 사용하였는데 이렇게 작성해도 되는지 궁금하여 질문을 올리게 되었습니다. 또 아래와 같이 for문 안에 있는 i 값을 변경해도 괜찮은지도 궁금합니다! function solution(k: number, arr: number[]): number { let sum: number = 0; let count: number = 0; let max: number = 0; for (let i = 0; i < arr.length; i++) { if (count < k) { sum += arr[i]; count++; } else { if (max < sum) { max = sum; } i = i - count; count = 0; sum = 0; } } return max; }감사합니다
-
미해결리눅스 쉘 스크립트 마스터
BASH_REMATCH 변수가 어디서 나온거죠?
관련 답변 읽어보았으나 여전히 이해가 안되서 질문드립니다. 어디서 BASH_REMATCH 변수가 나오는건지 모르겠습니다.$LANG =~ $locale이 되면 자동으로 BASH_REMATCH가 생성되는건지 어쩐건지 설명 없이 바로 그냥 저 변수에 2번째 요소와 1번째 요소를 호출하는게 이해가 안됩니다. 그리고 =~도 무슨 말씀인지 모르겠습니다. 대체로 명령어 실행했을 때 현상 만을 설명해주시고 원리 설명이 없어서 이해가 너무 어렵습니다. 참고할만한 정규표현식 관련 사이트 같은게 있으면 추천 좀 부탁드립니다.
-
미해결HAL, CubeMX, TrueSTUDIO를 이용한 STM32F4 무료 강좌
서보모터 질문
안녕하세요 강사님! 아래 서보모터 관련 질문을 썼던 학생입니다:) 같은 문제로 여러 번 질문드려 죄송합니다ㅠㅠ강사님께서 말씀 주신대로 pwm 파형을 오실로스코프로 찍어봤는데 동작펄스폭 내에서 제대로 출력되고 있었습니다. 혹시 몰라 버튼을 누를때마다 펄스폭이 바뀌는 프로그램을 넣어서 실험해봤을 때도 펄스가 제대로 출력되고 있었습니다. 서보모터에 들어가는 전원 5v도 제대로 들어가는 것도 확인했는데, 서보모터가 동작하지 않습니다ㅠㅠ 근데 해당 서보모터를 아두이노 예제 프로그램으로 돌려보면 문제없이 돌아갑니다. 무엇이 문제인지 예상되는 원인이 있을까요?? 저는 아무리 생각해봐도 뭐가 문제인지 모르겠습니다ㅠㅠ 모터에 전원과 pwm만 제대로 인가되면 동작하는 것이 아닌가요? 사용하는 서보모터는 영상과 같은 sg90입니다!
-
미해결스프링 부트 - 핵심 원리와 활용
IntelliJ무료버전 톰캣 실행이 안됩니다.
Smart Tomcat을 사용해서 실행하는데java.io.FileNotFoundException: C:\Users\...\smart-tomcat\conf\server.xml (지정된 파일을 찾을 수 없습니다) 발생합니다.경로가 Catalina base에 자동으로 채워지는 부분이었어요..어떻게해야될까요?
-
해결됨네트워크, 그림으로 이해하자(2022ver.)
TCP 흐름 제어에서 슬라이딩 윈도우 기법 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.슬라이딩 윈도우 기법에 대해 몇 가지 질문 드리고자 합니다.A의 윈도우 크기 250은 B의 윈도우 크기가 250이여서 맞춰져서 그런 건가요? 아니면 그냥 가정으로 250이라고 한 건가요?확인 응답이 ACK 101인 이유는 100 byte 데이터 크기를 보냈기 때문에 이에 +1 값을 보낸 것이라 이해하면 될까요?A에서 보낸 데이터 50 바이트를 B가 버퍼에 저장하고, 어플리케이션 프로세스에서 50바이트를 처리했다고 했는데, 이는 A로부터 마지막으로 받은 데이터를 사용된 게 아닌 그보다 먼저 버퍼에 저장된 데이터를 사용했다고 이해하면 될까요?어플리케이션 프로세스가 사용했다고 말씀하신 후 윈도우 크기가 이동되었는데, 좌측 경계선은 저장되면 왼쪽에서 오른쪽으로 이동되고, 데이터가 사용되어 오른쪽 경계선이 오른쪽으로 갔다고 이해하면 될까요? 그리고, TCP 혼잡 제어 파트에서 오타가 있습니다. 0:36 시간대에 '이를 통하여 혼자 회피를 합니다' 라고 나와있는데 제가 이해한 바로는 '혼잡 회피'인 것 같은데 맞나요?
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
훈련_문제(ScannerWhileEx4)
ScannerWhileEx4 관련하여 질문합니다. 문제 풀이에서는 if문으로 해결하셨는데 혹시 switch문으로도 해결할 수 있나요?
-
해결됨프론트엔드 개발자를 위한 웹팩
HTMLWebpackPlugin 사용한 webpack.config.js의 빌드 결과 index.html
안녕하세요?교안대로 오탈자 없이 따라해봤는데 제 경우에는,HTMLWebpackPlugin 사용한 webpack.config.js의 빌드 결과가 dist 폴더에 bundle.js와 index.html가 담겼습니다.문제는, 강의에서는 dist > indext.html에 <script type='text/javascript"....></script> 가 아래에 추가가 안되어 있더라구요..ㅠㅠ webpack.config.js에 코드 내용 똑같이 복붙해서 build 했는데 왜 안나오는지 모르겠습니다..
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
필터와 인터셉트 & afterCompletion()에 대해서
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]1.필터와 인터셉트의 선능차이 관련 로그인 체크해서, 로그인 페이지로 날려버리는 기능을 추가할때필터의 경우는 디스패치서블릿 이전에 실행되고, 차단할 수 있으니까 인터셉터보다는 서버 비용을 조금이라도 더 절감할 수 있는건가요?? 아니면 그냥 무시할정도의 미비한차이니까 인터셉터를 사용하든 상관 없나요? afterCompletion()로 로그처리 afterCompletion의 경우는 핸들러에서 예외가 발생할때에도 실행이 되니까, 모~든 핸들러의 예외를 로그 메세지로 관리하고 싶은 경우에는 "/*"로 필터를 걸고 afterCompletion에 예외관련된 로그 메세지를 출력되게 하면 되나요?실무에서도 이런식으로, 시스템 전체의 예외 메세지를 남기기위해서 사용하나요?