묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
구글로그인에러
과제30 구글 로그인 과제 수행중 자꾸 이 에러 때문에... 정답을 찾지 못하였습니다..무엇이 문제인지 모르겠어요...
-
미해결스프링 시큐리티
이전에 발급된 토큰
9:20초 쯤에 이전에 발급된 토큰이 있다고 말씀해주셨는데 이전이라는게 언제를 말씀하시는건가요 ? 서버를 재가동시키고 아무것도 안하고 지금 요청만 보냈을뿐인데 어떻게 갑자기 CSRF관련 토큰이 있는건가요??저는 강의 똑같이 따라했는데 csrfToken값이 null이나옵니다.
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
특정 셀필드 아래칸으로 이동해 텍스트 입력도 가능한가요?
특정 셀필드 아래칸으로 이동해 텍스트 입력도 가능한가요?예시 코드가 궁금합니다구현하려는 것이 a서식(셀필드 20개)b서식(a서식과 동일한 셀필드 20개 + 별도 @)을자동입력하는 것인데 b서식에만 있는 셀필드에는저런 식으로 접근해서 값을 입력하려고 합니다
-
미해결Django REST Framework 핵심사항
GET Method 에서 왜 Like 수를 증가시키는지 궁금합니다.
GET Method 에서 왜 Like 수를 증가시키는지 궁금합니다.이렇게되면 Like 수는 늘어나서 실질적인 데이터베이스 상에는 변화가 일어나는 것인데,GET Method 의 목적과는 맞지 않는 행위로 생각되었습니다! 의견이 궁금합니다
-
미해결Java/Spring 주니어 개발자를 위한 오답노트
ProductService부분에서 리팩토링 언급 질문
안녕하세요. 강의 너무 잘 듣고 있습니다.섹션2의 '스프링에서 OOP와 안티패턴 : Transactiojn script' 회차를 듣던 중 10분 42초 부분에서 ProductService 코드를 리팩토링하고 싶다고 말씀해주셨는데 어떤 부분에서 리팩토링 하고 싶으신건지 궁금합니다!! 제 부족한 지식으론 딱히 건드릴게 보이질 않아서요 ㅠㅠ※ 3년차 개발자이지만 회사 내 사수가 없어 좌절하고 있던 시기에 우근님의 강의를 듣는 순간 가뭄의 단비와 같으며 세상에서 가장 달콤한 술을 먹은 것 마냥 취하게 해주셔서 감사합니다..
-
미해결스프링 핵심 원리 - 고급편
try문 안에 trace.begin() 넣기
OrderControllerV1.java @GetMapping("/v1/request") public String request(@RequestParam String itemId) { TraceStatus status = trace.begin("OrderController.request()"); //시작 로그 출력 try { orderService.orderItem(itemId); trace.end(status); //종료 로그 출력1 return "ok"; } catch (IllegalStateException e) { trace.exception(status, e); //종료 로그 출력2 throw e; } }trace.begin() 코드에서도 예외가 발생할 수 있으니 try문에 넣어야 한다고 하셨는데, 어떤 부분에서 예외가 발생하나요..?? 혹시 log.info()에서 예외가 발생하나요??
-
미해결[유니티 레벨 업!] 모듈식으로 개발하는 퀘스트&업적 시스템
Save 함수에서 스택오버플로우 발생하는문제가 있습니다
foreach문을 들어가는순간 오류가 터집니다.에디터에서 가리키는 오류구문 80번째 내용은Quest 스크립트의public virtual bool IsSavable => IsSavable; 부분입니다.정말 도저히 이유를 못찾겠습니다..
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
HikariDataSource 실제 사용법
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.강의에서는 테스트 코드만 있어서 질문 드립니다.히카리 커넥션풀을 이용하는 코드를 작성하려고 하는데 헷갈리는 부분이 있습니다. private final DataSource dataSource;@RequiredArgsConstructor에 의해 DataSource에 히카리 커넥션 풀을 주입받은 상태에서 강의 테스트 코드의 dataSource.setJdbcUrl(URL); dataSource.setUsername(USERNAME); dataSource.setPassword(PASSWORD); dataSource.setMaximumPoolSize(10); dataSource.setPoolName("MyPool");에 해당하는 작업을 어디에서 해야하는 것인지 잘 모르겠습니다.@PostConstructpublic void init() {((HikariDataSource) dataSource).setJdbcUrl(URL); ((HikariDataSource) dataSource).setUsername(USERNAME); ((HikariDataSource) dataSource).setPassword(PASSWORD); ((HikariDataSource) dataSource).setMaximumPoolSize(10); ((HikariDataSource) dataSource).setPoolName("MyPool");}처럼 하는 방법과 생성자에서 같은 작업을 실행하는 방법이 떠오르는데 어느 방법이든 DataSource가 아닌 HikariDataSource에 의존하게 되는 것 같은데 어떻게 해결하면 좋을까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 2. 스케일링 질문
5회 작업형 2번 질문입니다.수치형 스케일링과 범주형 변수 원핫 인코딩은 같이 사용할 수 없나요 ? n_cols=['year', 'mileage', 'tax', 'mpg', 'engineSize']train[n_cols]=scaler.fit_transform(train[n_cols])test[n_cols]=scaler.transform(test[n_cols])c_cols = ['model', 'transmission', 'fuelType' ]train=pd.get_dummies(train[c_cols])test =pd.get_dummies(test[c_cols])이렇게 해버리면 수치형 데이터를 스케일링해도 해당 값이 사라지고, 원핫 인코딩된 데이터만 남습니다. 스케일링 코드를 뒤쪽으로 옮겨가도, 이미 사라진 수치형 데이터 컬럼명을 사용해서 에러가 뜹니다.그리고 강의에서는train = pd.get_dummies(train)test = pd.get_dummies(test)으로 진행하고 수치형 데이터를 아예 스케일링 안하고 넘어가셨는데, 어떻게 판단해서 해야하나요?
-
미해결카프카 완벽 가이드 - 커넥트(Connect) 편
[질문 아님]
나름 대로 개인 프로젝트 만들어가는중입니다.요 강의에서 Zookeeper과 Kafka 분리 설치 및 3노드 구성하여 클러스터 구축 완료...제가 오라클 DBA 14년차이지만 이게 저랑 잘맞는거 같습니다. 좋은 강의 끝까지 열심히 들을게요수고하세요~
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
warning 관련
안녕하세요! 답이 나오기는 하는데 이 copy warning은 뭘까요? 어떻게 해결할까요?# print(df.shape) line = int(len(df) * 0.8) df = df[:line] # df.shape # print(df.isnull().sum()) r1 = df['f1'].std() med = df['f1'].median() df['f1'] = df['f1'].fillna(med) # df.isnull().sum() r2 = df['f1'].std() abs(r1 - r2)<ipython-input-47-f10e742b8062>:10: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_indexer,col_indexer] = value instead See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy df['f1'] = df['f1'].fillna(med) 3.564064430008667
-
미해결블록체인, 가상자산거래소 보안
교안은 제공 안되는 건가요?
제목 그대로 입니다.교안을 찾을 수가 없네요.강사님 강의 일부 내용은 교안 보라고 하시고 넘어 가셨는데찾지를 못하겠습니다. ㅠㅠ 답변 부탁 드립니다.
-
해결됨디지털포렌식 입문자를 위한 디지털포렌식 전문가 2급 실기 시험대비 강의(Encase/Autopsy)
안녕하세요^^. 교재관련하여 질문드립니다.
강의 정말 잘 듣고 있습니다. 다름이 아니라 Autopsy 교재를 제본하려고 하는데요. Autopsy 실습 시나리오가 추가되면서 교재가 추가될 가능성이 있나요? 아니면 올려주신 교재가 완성본일까요? 항상 건강하세요.
-
해결됨Next.js 시작하기(feat. 지도 서비스 개발)
getStaticPaths로 각 매장의 상세 페이지 만들기
안녕하세요! 강의 수강 중 에러 원인을 모르겠어서 문의드립니다.next.js 최신 업데이트 버전을 사용하고 있어 동적 페이지 아래와 같이 생성 후 동일한 코드를 작성하였습니다. getstaticpath로 페이지 생성은 되었습니다. console에 path도 잘 나타나는 것 확인했습니다!근데 getstaticprops에서의 console이 아무것도 찍히지 않습니다. 실행 자체가 되지 않는 것 같은데 아무리 찾아도 모르겠습니다ㅜㅜ 무엇이 잘못된 것일까요?ㅜㅜ
-
미해결[스프링 배치 입문] 예제로 배우는 핵심 Spring Batch
빌드가 실패해요 ㅠㅠ
안녕하세요!강의와는 조금 다르게 java11과 springboot 2.7.13(snapshot)으로 진행해봤는데요.빌드가 계속 실패합니다 ㅠhttps://github.com/chojuyeon94/SpringBatchTutorialorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'batchDataSourceInitializer' defined in class path resource [org/springframework/boot/autoconfigure/batch/BatchAutoConfiguration$DataSourceInitializerConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.boot.autoconfigure.batch.BatchDataSourceScriptDatabaseInitializer]: Factory method 'batchDataSourceInitializer' threw exception; nested exception is java.lang.IllegalStateException: Unable to detect database type데이터베이스 타입을 찾을 수 없다고 나오는데요이게 데이터베이스에 연결이 잘 안되는거라고 해서 여러 방법을 써봤는데 잘 안되서 글 남깁니다!!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2에 명목형 컬럼 train=train.select_dtypes(exclude='object').copy()
작업형2에 명목형 컬럼 train/test=train/test.select_dtypes(exclude='object').copy()으로 담으면 라벨인코딩/원핫인코딩은 skip해도 무방할까요?
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
재고 데이터를 Redis에서 관리했을 때 분산락의 필요성
현재 강의에서 재고 데이터를 MySQL에서 관리하고 있는데, 만약에 다중 서버 환경이라고 가정하고, 재고 데이터를 Redis에서 관리한다했을 때에도 분산락이 필요한건가요? 제가 redisson을 이용해서 재고 감소 시키는 로직과 redisson을 이용하지 않고 재고 감소 시키는 로직을 구현했는데, 제가 예상한 바로는 redisson을 이용하지 않고 재고 감소 시킬 때에는 데이터 정합성이 맞지 않고, redisson을 이용해서 재고 감소시키는 로직에선느 데이터 정합성이 맞을 것이다라고 생각했는데, 결과는 둘다 동일하게 데이터 정합성이 맞더라구요. 왜 그런걸까요? 1번째 코드는 구현코드고, 2번째 코드는 테스트 코드입니다. @Repository public class InventoryRepository { private final RedisStringsRepository redisStringsRepository; private final RedissonClient redissonClient; private int waitTimeForAcquiringLock = 1; private int leaseTimeForLock = 1; @Autowired public InventoryCommandRepository( RedisStringsRepository redisStringsRepository, RedissonClient redissonClient ) { this.redisStringsRepository = redisStringsRepository; this.redissonClient = redissonClient; } public void set(String key, int amount) { redisStringsRepository.set(key, String.valueOf(amount)); } public void delete(String key) { redisStringsRepository.delete(key); } // lock 없이 재고 로직 감소 public void decreaseByAmountWithoutLock(String key, int amount) { redisStringsRepository.decreaseByAmount(key, Long.valueOf(amount)); } // lock 하고 재고 로직 감소 public void decreaseByAmount(String key, int amount) { RLock rlock = redissonClient.getLock(key+"lock"); try { boolean available = rlock.tryLock(waitTimeForAcquiringLock, leaseTimeForLock, TimeUnit.SECONDS); if (!available) { System.out.println("lock 획득 실패 "); return; } redisStringsRepository.decreaseByAmount(key, Long.valueOf(amount)); } catch (InterruptedException e) { throw new RuntimeException(e); if (rlock != null && rlock.isLocked()) { rlock.unlock(); } } } } @DisplayName("InventoryRepository") @SpringBootTest public class InventoryRepositoryTest { @Autowired private InventoryRepository inventoryRepository; @Autowired private RedisStringsRepository redisStringsRepository; @Autowired private RedisTemplate<String, String> redisTemplate; String key = "testKey"; int initialAmount = 100; @BeforeEach public void setUp() { redisStringsRepository.set(key, String.valueOf(initialAmount)); } @AfterEach void teardown() { redisStringsRepository.delete(key); } @Nested @DisplayName("decreaseByAmountWithoutLock") class Describe_decreaseByAmountWithoutLock { @Nested @DisplayName("with 1 thread") class Context_With_Single_Thread { @Test @DisplayName("decreases inventory by amount") void It_Decreases_Inventory_By_Amount() throws InterruptedException { int decreaseAmount = 1; inventoryRepository.decreaseByAmountWithoutLock(key, decreaseAmount); String value = redisStringsRepository.get(key); int expectedAmount = initialAmount - decreaseAmount; assertEquals(expectedAmount, Integer.valueOf(value)); } } @Nested @DisplayName("with multi thread") class Context_With_Multi_Thread { @Test @DisplayName("does not decrease inventory by amount") void It_Does_Not_Decrease_Inventory_By_Amount() throws InterruptedException { int threadCount = 100; int decreaseAmount = 1; ExecutorService executorService = Executors.newFixedThreadPool(32); CountDownLatch latch = new CountDownLatch(threadCount); for (int i = 0; i < threadCount; i++) { executorService.submit(() -> { try { // Perform the test inventoryRepository.decreaseByAmountWithoutLock(key, decreaseAmount); } catch (Exception e) { System.out.println(e.getMessage()); } finally { latch.countDown(); } }); } latch.await(); String value = redisStringsRepository.get(key); assertNotEquals(0, Integer.valueOf(value)); // 테스트 통과 안함. } } } @Nested @DisplayName("decreaseByAmount") class Describe_decreaseByAmount { @Nested @DisplayName("with 1 thread") class Context_With_Single_Thread { @Test @DisplayName("decreases inventory by amount") void It_Decreases_Inventory_By_Amount() throws InterruptedException { int decreaseAmount = 1; inventoryRepository.decreaseByAmount(key, decreaseAmount); String value = redisStringsRepository.get(key); int expectedAmount = initialAmount - decreaseAmount; assertEquals(expectedAmount, Integer.valueOf(value)); } } @Nested @DisplayName("with multi thread") class Context_With_Multi_Thread { @Test @DisplayName("decrease inventory by amount") void It_Does_Not_Decrease_Inventory_By_Amount() throws InterruptedException { int threadCount = 100; int decreaseAmount = 1; ExecutorService executorService = Executors.newFixedThreadPool(32); CountDownLatch latch = new CountDownLatch(threadCount); for (int i = 0; i < threadCount; i++) { executorService.submit(() -> { try { // Perform the test inventoryRepository.decreaseByAmount(key, decreaseAmount); } catch (Exception e) { System.out.println(e.getMessage()); } finally { latch.countDown(); // Latch의 숫자가 1개씩 감소 } }); } latch.await(); // Latch의 숫자가 0이 될 때까지 기다리는 코드 String value = redisStringsRepository.get(key); assertEquals(0, Integer.valueOf(value)); } } } }
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 회귀문제인지, 분류문제인지 어떻게 판별하는 지 궁금합니다.
작업형2 회귀문제인지, 분류문제인지 처음에 판별하는게 중요하다고 했는데, f1 score, roc auc로 평가한다는 조건이 있으면 분류문제rsme 같은 걸로 평가한다는 조건이 있으면 회귀문제일까요 ?혹은 id / 타겟값 이면 분류문제, 하나의 값만 제출하는 것이면 회귀문제일까요 ? 궁금합니다
-
미해결코딩테스트 [ ALL IN ONE ]
시간복잡도
섹션1 [기본]시간복잡도 2:39 부분이에요. 여기서 시간복잡도가 전부 더하면 5n²+3n+33ns 아닌가요 왜 5n²+3n+30ns 인가요ㅠㅠ단순 오타인건지 제가 이해를 못하는건지 모르겠네요...ns는 나노세컨드 이런의미인가요..?
-
해결됨딥러닝 CNN 완벽 가이드 - TFKeras 버전
안녕하세요 교수님 CIFAR10의 픽셀 크기에 대해서 질문있습니다.
강의 1분 20초에 IMAGE_SIZE = 32로 설정하여 Feature Extractor의 마지막 layer의 크기가 (1,1,512)가 나와 학습이 원할하게 잘 안된다고 하셨습니다.그래서 IMAGE_SIZE를 64로 설정하셨는데, CIFAR10의 픽셀개수를 강제로 64개로 바꿔주면 화질이 더 안좋다고 하셨는데,저의 생각은 픽셀개수가 더 많아짐으로 화질이 더 좋은것이 아닌가 라는 생각이 들었습니다. 혹시 Interpolation 때문에 화질이 더 안좋아진다고 생각해도 될까요?