묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결리셀봇 원리로 알아보는 Cypress
Chrome 자동화된 테스트 소프트웨어에 의해 제어되고 있습니다
안녕하세요.혹시 cypress로 자동화 Bot을 만들려고 했는데 로그인 과정에서 Chrome 자동화된 테스트 소프트웨어에 의해 제어되고 있습니다 가 발생하여 문제가 발생하고 있습니다. 현재는 chromeWebSecurity: false,를 추가한 방법을 사용하였는데 다른 추가적인 방식이 필요한가요??
-
미해결누구나 시작할 수 있는 네트워크 Step 1 (네트워크 모델)
섹션 2번과 4번이 중복 입니다.
섹션이 4번 까지 잇는데요 2번하고 4번이 같은 내용인데 진도율은 다 들어야 올라 가네요. 수정해야 할것 같습니다. 수정 부탁드립니다.
-
해결됨[리뉴얼] 맛집 지도앱 만들기 (React Native & NestJS)
RN expo 에 대하여
안녕하세요.현업자로서 RN expo에 대한 강사님의 생각이 궁금합니다. RN 공식 페이지에서 expo 와 같은 프레임 워크 사용을 권장하는 뉘앙스로 설명을 시작하는데 ,(You can also use React Native without a Framework, however we’ve found that most developers benefit from using a React Native Framework like Expo.) 만약 강사님이 완전 새로운 앱 개발에 착수하신다면, expo 를 사용하실것 같으신가요? 아니면 native cli 로 시작하실것 같으신가요?
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
SingletonBehaviour 수업 마지막 부분에 질문이 있습니다.
해당 수업 마지막에 솔루션 빌드를 하셨는데 이유가 궁금합니다.유니티에서 코드를 작성하고 에디터로 돌아와 리로드를 하는것과 솔루션 빌드를 하는것에 차이가 있는지 궁금합니다!
-
미해결파이썬 알고리즘 트레이딩 파트1: 알고리즘 트레이딩을 위한 파이썬 데이터 분석
.yaml 파일을 통한 환경설정에서 --force 명령어가 작동안합니다.
선생님 안녕하세요. 강의 잘 듣고 있습니다. 다름 아니라 미니콘다 프롬프트를 통해 가상환경설정 시기존 yaml 파일을 통해 환경설정을 덮어쓰기 하는 경우 에러가 발생합니다. (myenv-finance-analysis) C:\Users\baesilisk\env_yaml>conda env create --force -f myenv-finance-analysis.yamlusage: conda-script.py [-h] [-v] [--no-plugins] [-V] COMMAND ...conda-script.py: error: unrecognized arguments: --force 해결방법을 알려주시면 감사하겠습니다!
-
미해결
postman 으로 post요청의 @modelattribute 만들수없나요?
@PostMapping("login/save") public String joinMembership(@Validated @ModelAttribute Member member, BindingResult bindingResult) { if (bindingResult.hasErrors()) { return "loginSave2"; } loginService.save(member); return "redirect:/"; } 제가짠 코드인데요 원래 회원가입이 제대로 작동하는지 html 폼에서 온 값을 @ModelAttribute로 생성을 해야하는데 postman으로 생성을 해서 테스트 하려했습니다. post요청을두고, 주소입력하고 body에 x-www-form-unlencoded 로 키,값을 입력하니 아예 객체생성도안되고, raw로 하고 json으로 키,값 입력하니 모든값이 null인 member객체가 생성되네요.. 질문드립니다. post요청의 @modelattribute로 객체를 생성할때, html폼에서 온값으로 객체생성이 아닌 postman으로 객체생성은 안되는건가요? bidingresult에 에러가있어서 loginSave2페이지로 돌려보내는데, 어떤 오류가있는건지 확인은 어떻게하나요?
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
Access denied for user 'root'@'localhost' (using password: YES)
https://www.inflearn.com/community/questions/1364596/access-denied-for-user-root-localhost-using-password-yes위 글에서 재성님이 제시해주신 해결방법을 적용해보았습니다. 하지만 여전히 root 계정에 접속이 안됩니다. docker compose down -v 명령어를 통해 볼륨을 제거해도 여전히 해결이 안됩니다. 스프링부트 역시 데이터베이스와 연결되지 않았다는 오류가 로그에 남습니다.
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
Appbar 의 my_location 버튼을 눌러도 현재위치로 이동하질 않습니다.
강의 정말 잘 듣고있습니다! 오늘도 출근 프로젝트에서 앱바 액션 버튼의현재 위치로 시점 이동 버튼 기능이 동작하지 않습니다. 중간에 기능 확인할때 잘 작동하는것을 확인했는데강의 다 듣고 나서 다시 확인하니 작동을 하지 않습니다. Geolocator.getCurrentPosition() 여기서 데이터를 못받아와서 그런것 같은데 뭐 때문에 갑자기 못 받아오는건지 알수가 없습니다... import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:geolocator/geolocator.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart'; class HomeScreen extends StatefulWidget { const HomeScreen({super.key}); @override State<HomeScreen> createState() => _HomeScreenState(); } class _HomeScreenState extends State<HomeScreen> { final CameraPosition initialPosition = CameraPosition( target: LatLng( 37.5214, 126.9246, ), zoom: 15); late final GoogleMapController controller; bool choolCheckDone = false; bool canChoolCheck = false; final double okDistance = 100; final testPosition = LatLng(37.5214, 126.9246); @override initState() { super.initState(); Geolocator.getPositionStream().listen((event) { final start = testPosition; final end = LatLng(event.latitude, event.longitude); final distance = Geolocator.distanceBetween( start.latitude, start.longitude, end.latitude, end.longitude, ); setState(() { if (distance > okDistance) { canChoolCheck = false; } else { canChoolCheck = true; } }); }); } checkPermission() async { final isLocationEnabled = await Geolocator.isLocationServiceEnabled(); if (!isLocationEnabled) { throw Exception('위치 기능을 활성화 해주세요.'); } LocationPermission checkedPermission = await Geolocator.checkPermission(); if (checkedPermission == LocationPermission.denied) { checkedPermission = await Geolocator.requestPermission(); } if (checkedPermission != LocationPermission.always && checkedPermission != LocationPermission.whileInUse) { throw Exception('위치 권한을 허용 해주세요.'); } } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text( '오늘도 출근', style: TextStyle( color: Colors.blue, fontWeight: FontWeight.w700, ), ), actions: [ IconButton( color: Colors.blue, onPressed: myLocationPressed, icon: Icon(Icons.my_location), ), ], ), body: FutureBuilder( future: checkPermission(), builder: (BuildContext context, AsyncSnapshot snapshot) { if (snapshot.hasError) { return Center( child: Text(snapshot.error.toString()), ); } return Column( children: [ Expanded( flex: 2, child: _GoogleMaps( testPosition: testPosition, okDistance: okDistance, canChoolCheck: canChoolCheck, initialPosition: initialPosition, onMapCreated: googleMapController, ), ), Expanded( flex: 1, child: _Bottom( choolCheckDone: choolCheckDone, canChoolCheck: canChoolCheck, onChoolCheckPressed: onChoolCheckPressed, ), ) ], ); }, ), ); } googleMapController(GoogleMapController controller) { // state에 선언한 controller에 방금 선언한 controller 넣음 this.controller = controller; } onChoolCheckPressed() async { final result = await showDialog( context: context, builder: (BuildContext context) { return CupertinoAlertDialog( title: Text('출근하기'), content: Text('출근을 하시겠습니까?'), actions: [ TextButton( onPressed: () { Navigator.of(context).pop(false); }, child: Text('취소'), style: TextButton.styleFrom(foregroundColor: Colors.red), ), TextButton( onPressed: () { Navigator.of(context).pop(true); }, child: Text('출근하기'), style: TextButton.styleFrom(foregroundColor: Colors.blue), ) ], ); }, ); if (result) { setState(() { choolCheckDone = true; }); } } myLocationPressed() async { print('before'); final location = await Geolocator.getCurrentPosition(); print('after'); controller.animateCamera( CameraUpdate.newLatLng( // 이 위치로 구글맵 카메라를 애니메이션과 함께 움직여라! LatLng( location.latitude, location.longitude, ), ), ); } } class _GoogleMaps extends StatelessWidget { final LatLng testPosition; final double okDistance; final bool canChoolCheck; final CameraPosition initialPosition; final MapCreatedCallback onMapCreated; const _GoogleMaps({ super.key, required this.testPosition, required this.okDistance, required this.canChoolCheck, required this.initialPosition, required this.onMapCreated, }); @override Widget build(BuildContext context) { return GoogleMap( initialCameraPosition: initialPosition, mapType: MapType.normal, myLocationEnabled: true, myLocationButtonEnabled: false, zoomControlsEnabled: false, onMapCreated: onMapCreated, markers: { Marker( markerId: MarkerId('123'), position: testPosition, ), }, circles: { Circle( circleId: CircleId('inDistance'), center: testPosition, radius: okDistance, fillColor: canChoolCheck ? Colors.blue.withOpacity(0.5) : Colors.red.withOpacity(0.5), strokeColor: canChoolCheck ? Colors.blue : Colors.red, strokeWidth: 1, ) }, ); } } class _Bottom extends StatelessWidget { final bool choolCheckDone; final bool canChoolCheck; final VoidCallback onChoolCheckPressed; const _Bottom({ super.key, required this.choolCheckDone, required this.canChoolCheck, required this.onChoolCheckPressed, }); @override Widget build(BuildContext context) { return Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Icon( choolCheckDone ? Icons.check : Icons.timelapse_outlined, color: choolCheckDone ? Colors.green : Colors.blue, ), SizedBox( height: 16, ), if (!choolCheckDone && canChoolCheck) OutlinedButton( onPressed: onChoolCheckPressed, child: Text('출근하기'), style: OutlinedButton.styleFrom( foregroundColor: Colors.blue, ), ), ], ); } }
-
미해결파이썬 기초 라이브러리부터 쌓아가는 머신러닝
섹션1의 마지막 강의(DataFrame에서 자주 사용하는 전처리 기법)의 오류 해결방법
안녕하세요 거친코딩님!우선 강의 너무 재밌게 잘 듣고 있습니다. 섹션 1의 마지막 강의를 듣다가 오류가 발생하는데 무엇이 원인인지 잘 모르겠어서 질문드립니다. 해당 강의 11분 50초에서 설명해주시는 nan_abalone_df.mean()을 하면 자꾸 타입에러가 발생합니다TypeError Traceback (most recent call last) <ipython-input-138-677ba292c7ae> in <cell line: 1>() ----> 1 nan_abalone_df.mean() /usr/local/lib/python3.10/dist-packages/pandas/core/nanops.py in _ensure_numeric(x) 1676 if inferred in ["string", "mixed"]: 1677 # GH#44008, GH#36703 avoid casting e.g. strings to numeric -> 1678 raise TypeError(f"Could not convert {x} to numeric") 1679 try: 1680 x = x.astype(np.complex128) TypeError: Could not convert ['MMFMIIFFMFFMMFFMIFMMMIFFFFFMMMMFMFFMFFFMFFIIIIMFIFIMMFMFMMIFMMFMMMFFFIMFFMFFMFFFFMFMMFMMFFMMMFMMMMMFIMMMMFFFFFMMIMFFFMFMFIFMIIIIMMMFFIIFFMFMFFMMMFMIIIMFFFFMFMFFMFMFFMFFMFMFMFIIIIIMMMFFFMFFFFMMMIFMFMMMFMFFMFIIFIFMFMFMMIMFFFFFIFFIFFMMMIIIIIIIMIIIIIIIIIIMFFMMMMFFFFMIMFMMMFFMMMMMFMMFFIFMMFMFMFMFMFMIIIMMFFMMFIIMMMFMMFMIFMFIIIMIMIIMMIMFIIFMMMMFMFMFFMFIIMFFMMMMMFMFMFFFFMMFMFFFFFMFMFMFMMMMMFMMMIIMFIIIFMMMFMFFIFMMMMMMFMFFFMFMFIFIIMFMFFFMMMIMIIMMIIFIFFMMMFMFFFFMFIIFMFIIIIFMFMFFIFFMFMMMFMMFMFMFMFMMFMMFFFFMFFFFFMMMMIIFFMFMMMMFMFIMMMMFFMIFIFIIIMMFFFMMFMMMFIIIIIIIIFFIFIFFFMIIMFIIFFIFIFIFFIFIFIIFMFIFIFMIFIIFIFFIIIMIMMFMMIIMFMMMMIFFIFFFIMIFMIMMMMIFMIFMMIMMIFMIIMFMFFIFIIFFIFMFMFMFFMFFMFFFIMFMMMFFMMMIFMIIIMFFMFFMMMMFMIIMIMMIIIIIIMMMMFMFMFMMMMMMMFMMMFFFMFFMMMFMFFMMMFMMMFFMFMFMFFFIMMMMMMMFMMMIIMFMFFFFMMMMMMMFMMMIMMIFFFMFIIIIIIIIIIIIIIIIIIMIIIIIMIFIMFMMMMFFFMFMMMMFMMFFFFMFMFMFFMMFMFFMMFFFMMMMMFFFFFFMIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIFIIIIIIIIIIIIFMFMFMMMMFMMMMIMMFIMIMIIMMFMFMFFMFMMFFFFMMFMMMFFFMFMMMFFFMFMFMMMMFFFMFFFMFMMMMFFFMMFMFFMMMFFFMMFMFFMMMFFMMFFMIIIIIIIIIIIIIIIIIIIIIIIIIIIMIIIIIIIIIIIIMIIIIMIIIMFIFIIIMIIFIIMIIIIMMMFFMMMFMMMFMFIFFMFMIMMMMMMMFMMMFMFMFMMFMMMMFFMMFFMMMFMMFFMMFFMIFFMFMFMMMFFFMMFFMMFMMFFMFIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIFIIIFIIIIIIIIIIIIMIMIIIIIIIIIIIIIMIIIIIIFMFIIFIIIFMIIMIIIIIFIIFMMIIFMIMFFMMMFMMIMMMMIMMFFMMIFFMIMIFFMMMIMMFMMFMMFMMFFMFFFFIMIMMFFMMMMMMMFFMMFFMFMFFFFFMMFFMMFFFMFFFFFFIIIIIIIIIIIIIIMIIIMIMIIIII... 강의를 다시 돌려보고 거친코딩님과 똑같이 코드를 쳤는데 자꾸 저 부분에서 오류가 발생하네요.nan_abalone.df의 성별 열이 문자라서 mean함수를 호출할 수 없는 것일까요? 근데 왜 선생님 강의에서는 성별 컬럼이 존재해도 mean이 실행이 될까요..저 부분이 안되니 당연히 nan_abalone_df.fillna(nan_abalone_df.mean())도 안되네요.. 똑같은 타입에러를 일으킵니다 아직 데이터 전처리 걸음마단계라 미숙하지만 잘 부탁드립니다..! 좋은 강의 감사합니다
-
미해결2시간으로 끝내는 코루틴
completing의 존재의의가 궁금합니다.
안녕하세요? 강의 정말 잘 듣고 있습니다. 세심한 답변도 감사드립니다. 강의를 듣던중 궁금증이 생겼는데요,completing이라는 status의 의의가 좀 궁금합니다. 강의예시로 보여주신 코드는 대략 아래와 같은 느낌이였는데요, 이경우 두번째 자식 코루틴 취소 -> 부모로 전파 -> 다른 자식으로 전파(취소요청) -> 취소 된다는 부분은 이해했습니다.fun main(): Unit = runBlocking { launch { delay(700L) printWithThread("First Child Corutine") } launch { delay(500L) throw IllegalArgumentException("Second Child Corutine Exception~~~!") } } 그런데 강사님이 말씀해주신 completing은 마치 특정 코루틴의 작업이 완료되어도, 다른 코루틴의 작업이 실패했을 때 다시 취소처리하기 위한(그래서 Structured Concurrency를 달성하기 위한) 수단인것처럼 말씀해주셨는데, 실제로 어떤식으로 동작하는지를 잘 이해가 안갑니다 예를 들어 제가 처음 강의를 들었을 때는, 아래의 코드에서 우선적으로 첫번재 launch 실행 -> completing상태 -> 두번째 launch 실행 -> 예외발생 -> 첫번재 코루틴이 다시 cancelling이 되어야 한다고 이해했는데..그러면 아래 코드에서 첫번째 코루틴에서 cancellationException이 잡혀서 "First Child Coroutine caught an exception: ${e.message}" 가 출력되어야 할 것 같은데 그러지 않더라구요. 아마 첫번째 코루틴이 completing이 아닌 completed상태가 되어서 더이상 영향을 받지 않게 되는 것 같은데.. completing이 정확히 어떤 상태인지가 궁금합니다fun main(): Unit = runBlocking { launch { try { delay(500L) println("First Child Coroutine Completed Successfully") } catch (e: Exception) { println("First Child Coroutine caught an exception: ${e.message}") } } launch { delay(700L) throw IllegalArgumentException("Second Child Corutine Exception~~~!") } } // 출력결과 First Child Coroutine Completed Successfully Exception in thread "main" java.lang.IllegalArgumentException: Second Child Corutine Exception~~~! ...
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
동시 세션 제어 - sessionManagement().maximumSessions 강의
동시 세션 제어 - sessionManagement().maximumSessions 강의에서 이상한 부분이 있습니다.maxSessionsPreventsLogin가 true인 경우를 24:30초에 테스트 하실때 비밀번호를 틀려서 강의에서는 테스트가 정상적으로 안된거 같습니다.비밀번호가 1111인데 값을 3개만 입력해서 말씀드립니다.
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
작성완료 버튼 오류
12.14)New 페이지 구현하기 2. 기능 강의를 따라 코드를 작성했는데작성 완료 버튼을 누르면 데이터가 추가되지 않고 아래 사진과 같은 에러가 뜹니다. 왜 그런지 이유를 몰라 질문 드립니다. 소스코드는 깃헙에 올려놨습니다!https://github.com/dooheeyaa/section12
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-L 문제가 이해가 안됩니다 ㅠ
안녕하세요 선생님 🙂 문제가 이해가 안되어서 질문 드립니다. N = 4일 경우, 팀에 2명씩 속하기 때문에 arr[i][j] + arr[j][i] 차이의 최소값을 구하면 간단하게 풀어지는데요, N = 6일 경우, 팀에 3명씩 속해야 하는데, 배열만 봤을 때 팀이 이루어질 수 있는 경우의 수가 무엇인지 도통 모르겠습니다.. ㅠㅠ 문제의 힌트를 봐도 모르겠네요.. 도움 부탁드립니다 :)
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
궁금한게 있습니다.
실제 일기장 프로젝트를 보면요 App.js 에 return ( <> <DiaryStateContext.Provider value={data}> <DiaryDispatchContext.Provider value={{ onCreate, onUpdate, onDelete }}> <Routes> <Route path="/" element={<Home />} /> <Route path="/new" element={<New />} /> <Route path="/edit/:id" element={<Edit />} /> <Route path="/diary/:id" element={<Diary />} /> <Route path="*" element={<Notfound />} /> </Routes> </DiaryDispatchContext.Provider> </DiaryStateContext.Provider> </> );이렇게 되어있고 다른 페이지 ( Diary,Ediit,Home,New) 등 페이지에서는 Header 을 공통적으로 include 하고 있는데요 .혹시 이걸 시작하는 App에서다가 추가하고 실제 Diary에 적용되도록 하는 방법이 혹시 있을까요 ..? 먼가 페이지 마다 인클루드 할려니깐 .중복되는코드 같아서요
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
Part2 umap import 에러
안녕하세요 Part2 1강에서 Step1.umap이 Editor에서 불러와지지 않아서 다른 세팅법이 있는지 궁금합니다.5.1.1 똑같이 사용중이고 다른 에셋들은 불러와졌는데 umap만 안불러와져서 질문 글 올립니다.
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
제공해주신 문제 풀이가 시간초과가 되어 문의드립니다!
안녕하세요 선생님! 강의 잘 듣고 있습니다.[실전 문제풀이1 : BOJ 3085 사탕 게임] 문제에서 선생님이 제공해주신 "풀이1-O(N^4)" 으로 python3 답을 제출했는데 시간 초과가 되는 걸로 나옵니다. 시간 복잡도가 O(N^4)인데 왜 시간 초과가 나는 것인지 궁금해서 문의드립니다!
-
미해결
앱에 PG결제 넣을 때, 보통 심사 순서가 어떻게 되나요?
안녕하세요.현재 외주 개발사를 통해서 앱을 개발중이고, 실질적인 개발은 다 마무리되었는데PG랑 카드사 심사에서 막혀서 진도가 안나가고 있습니다. 앱은 웹으로 제작해서 안드로이드랑 ios로 앱패키징을 하는 웹앱 형태입니다. 외주 개발사는 "PG심사 > 카드사 심사 > 구글플레이 입점 > 애플 앱스토어 입점" 순서로 한다고 하는데지금 PG사 및 카드사에서는 심사를 위해서는 구글플레이나 애플 앱스토어에 정식으로 등록된 어플만 심사를 한다고 계속 반려를 당하고 있습니다. 외주 개발사 말로는 결제가 정상적으로 되어야 구글플레이든 애플앱스토어든 심사를 받지 어떻게 결제도 없이 심사를 받냐고 반문하는 중입니다. 일반적으로 뭐가 맞는건지 잘 몰라서 문의 올립니다. 앱에 결제 기능이 들어가야 될 때, 구글 및 애플 자체 인앱결제가 아닌 PG사 결제모듈을 통해 결제를 하는 경우에 일반적인 심사 순서가 어떻게 되나요??
-
미해결게임 개발자를 위한 3D 그래픽스, 쉐이더, OpenGL (4) - 좌표 변환, 회전, 가상 트랙볼
외적 공식 문의
강사님 궁금한 점이 있어서 문의 드립니다. 외적 공식에 대해서 이 부분이 맞는지 확인 부탁 드립니다.제가 알고 있기론 가운데 j 행렬에서는 +가 아니라 - 부호가 되어야 맞는 것으로 알고 있는데 이 부분에 대해서 문의 드립니다. 제가 잘못알고 있는게 아닌지에 대해서 궁금해서 문의 드립니다.
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
AWS VPC 과금 문제(탄력적 IP)
탄력적 IP 설정 이후, 리눅스용 도커 설치 영상에 따라 우분투 서버에 docker를 설치했습니다. 그런데 과금이 되었더군요. 프리티어라 과금이 안될줄 알았는데, 정책이 바뀌어 탄력적 IP 설정에 비용이 청구됩니다.https://dev.classmethod.jp/articles/rate-policy-for-aws-public-ipv4-addresses-will-change-kr/탄력적 IP 사용을 안하면 과금이 된다는 말씀도 하셨던거 같은데 그냥 탄력적 IP를 해제하면 될까요? 서버 사용은 동적으로 바뀌는 IP로 접속하면 되는건지...
-
미해결3. 웹개발 코스 [Enterprise Architecture(EA) X 전자정부프레임워크]
스프링 프레임워크+전자정부 표준프레임워크 강의 쿠폰요청 메일
안녕하세요, [EA + Egovframework] 강의를 먼저 수강한 수강생입니다. 무료쿠폰은 [스프링 프레임워크+전자정부 표준프레임워크] 에 해당하는 쿠폰으로 알고 있지만, 저의 경우 [EA+Egovframework] 만 들었기 때문에 혹시 [스프링 프레임워크+전자정부 표준프레임워크] 관련 쿠폰을 받을 수 있는지요? [EA+Egovframework] 를 매우 유익하게 들어서 다른 강의도 꼭 듣고 싶습니다.