inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

Mac

미해결

Do It! 장고+부트스트랩: 파이썬 웹개발의 정석

Mac으로 강의를 수강하고 있는데 강의를 끝까지 수강하는데 문제가 있을까요? 그리고 맥에서는 cmder이 실행이 안되는것 같습니다. 이 부분을 어떻게 해야 좋을까요? 감사합니다!

  • HTML/CSS
  • javascript
  • python
  • django
  • bootstrap
  • aws
  • docker
  • tdd
최기연 댓글 1 좋아요 0 조회수 336

긴 작업일 경우 트랜잭션을 걸지 말아도 된다는 점이 이해가 잘 안갑니다.

해결됨

Practical Testing: 실용적인 테스트 가이드

안녕하세요. 테스트 코드를 수강하고 있는 학생입니다. 긴 작업일 경우 트랜잭션을 걸지 말라고 하셨는데. 조회용 트랜잭션이 Repository 단에서 걸린다는 말씀을 하셨는데 Repository의 조회 로직이 수행될 때 트랜잭션이 걸리는 건가요? 뭔가 잘못 이해한거 같기도 해서 질문합니다. 그리고 @RequiredArgsConstructor @Service public class MailService { private final MailSendClient mailSendClient; private final MailSendHistoryRepository mailSendHistoryRepository; public boolean sendMail(String fromEmail, String toEmail, String subject, String content) { boolean result = mailSendClient.sendEmail(fromEmail, toEmail, subject, content); if (result) { mailSendHistoryRepository.save(MailSendHistory.builder() .fromEmail(fromEmail) .toEmail(toEmail) .subject(subject) .content(content) .build() ); return true; } return false; } } 여기서는 Transaction을 걸어줘야 하는게 맞는거 같아서. 이 부분도 궁금합니다. 요약 저는 서비스 Layer 에서 Transaction 을 걸어 db작업에서 문제가 발생했을 경우 rollback 되어야 한다고 생각했습니다. 강의에서 긴 작업들이 실제로 트랜잭션에 참여하지 않아도 되는데 -> OrderStatisticsService 에서는 CUD 작업이 아니니깐 Transaction을 안 걸어도 된다.? MailService 에서는 Transaction을 걸어줘야 하는게 아닌가요? (Create 작업 수행) 조회용 트랜잭션이 Repository 단에서 걸린다.? 뭔지 잘 모르겠습니다.

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
Anfield 댓글 2 좋아요 1 조회수 1130

mockMVC CRUD작업

미해결

Practical Testing: 실용적인 테스트 가이드

controller테스트를 할때 mockMVC를 사용하면 DB에 CRUD 작업은 수행되지 않나요? 디버깅을 해보면 각 Layer별로 동작이 수행되는거 같은데 DB접근하여 데이터를 가져오는 부분에서는 null이 계속 나오네요(MyBatis 사용중). 또 만약 실제 프로덕션 controller처럼 모든 동작이 수행된다면 왜 "하위 Layer를 모두 mocking처리" 라고 표현하시는지 궁금합니다.

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
chopinballadeno4 댓글 2 좋아요 0 조회수 296

dry 패턴

미해결

견고한 JS 소프트웨어 만들기

do it repeat yourself (x) don't repeat yourself (0) 아닌가여?

  • tdd
  • 소프트웨어-테스트
  • jasmine
yjh 댓글 1 좋아요 1 조회수 231

TDD 통과 했지만, 실제 웹에서 작동하지 않습니다.

해결됨

Do It! 장고+부트스트랩: 파이썬 웹개발의 정석

안녕하세요, Test코드는 통과했지만 실제 웹에서 다음과 같은 에러를 만났습니다. django.db.utils.IntegrityError: UNIQUE constraint failed: blog_tag.slug ... tag, is_tag_created = Tag.objects.get_or_create(name=t) ... 웹에서는 위와 같은 라인에서 에러가 발생한다고 합니다. 하지만 어느 부분을 어떻게 고쳐야 할지 모르겠어서 질문 남겨봅니다.

  • python
  • django
  • tdd
차누 댓글 1 좋아요 0 조회수 385

[섹션5: Spring & JPA 기반 테스트] 에서 진행한 테스트는 단위테스트인가요? 통합테스트인가요?

해결됨

Practical Testing: 실용적인 테스트 가이드

안녕하세요. 현재 섹션 5까지 수강을 하고 헷갈리는 것이 있어 질문 남기게 되었습니다. 섹션 5에서 3개의 레이어에 대한 테스트를 진행하는 데 이 테스트들은 단위 테스트인지 통합 테스트인지 헷갈립니다. @SpringBootTest 어노테이션을 사용하는 것으로 봐서는 스프링 빈을 전부 로드하는 통합테스트 같기도 하면서, @WebMvcTest 어노테이션을 사용하는 것을 봤을 때는 다른 레이어와 독립적인 테스트를 진행하는 것 같아 단위테스트 같은 것 같다고 생각했습니다. 이번 섹션에서 진행한 테스트는 어떤 종류의 테스트인가요? 만약 단위(혹은 통합)테스트라면 다른 종류에 있는 테스트는 어떻게 진행해야 하는지, 아니면 이 테스트만으로 충분하지 궁금합니다.

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
자두 댓글 2 좋아요 1 조회수 589

data가 isArray() = ture인 이유

미해결

Practical Testing: 실용적인 테스트 가이드

ProductControllerTest에서 @DisplayName("판매 상품을 조회한다.") @Test void getSellingProducts() throws Exception { // given List<ProductResponse> result = List.of(); when(productService.getSellingProducts()).thenReturn(result); // when // then mockMvc.perform( get("/api/v1/products/selling") ) .andDo(print()) .andExpect(status().isOk()) .andExpect(jsonPath("$.code").value("200")) .andExpect(jsonPath("$.status").value("OK")) .andExpect(jsonPath("$.message").value("OK")) .andExpect(jsonPath("$.data").isArray()); } data의 타입이 List인데 isArray()로 확인되는 이유는 JSON으로 변경될 때 List타입을 Array타입으로 자동으로 변경해서 그런건가요?

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
코딩먹는하마 댓글 2 좋아요 0 조회수 422

안녕하세요 강사님 관련 질문은 아닌데 테스트 때문에 진도를 못 나가서 질문 하나 올립니다!!

미해결

Practical Testing: 실용적인 테스트 가이드

Redis 테스트는 어떻게 진행해야 되는지 모르겠습니다.. embedded Redis 를 사용해야 되는지, 테스트 컨테이너를 사용해야 되는지 어떤 방법으로 진행해야 되는지 가르쳐주실 수 있나요?

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
진짜 잘하고싶다 댓글 2 좋아요 1 조회수 574

테스트를 위한 테스트쿼리 작성시 궁금증

미해결

Practical Testing: 실용적인 테스트 가이드

학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요! 먼저 유사한 질문이 있었는지 검색해 보세요. 서로 예의를 지키며 존중하는 문화를 만들어가요. 현재 자바 백엔드 개발자입니다. 현재 마이바티스로 테스트 코드를 짜려고하는데 검증할 쿼리는 어떤 테이블의 특정 버전의 가장 높은 버전을 가져오는 쿼리로 그 특정버전으로 정렬을 시키고 top(1)을 사용해서 가져오게하는 쿼리로 짜놓은 상태입니다. 그러면 이걸 테스트를 하려고하면 셀렉트 쿼리를 하나 더짜서 그 특정버전에 max()를 사용해서 값으로 가져온 후 검증을 하는 방법이 떠오르는데요 그러면 이런 또하나의 쿼리가 생기는데 또하나의 쿼리가 잘 못 된다면 그 테스트의 경우가 잘못되는것을 말하는데 이런 상황에서 어떻게 하셨는지 궁금합니다

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
김정기 댓글 2 좋아요 0 조회수 420

teardown 시 @AfterEach 주의

미해결

Practical Testing: 실용적인 테스트 가이드

혹시나 저와 같은 이슈를 만나셨을 분이 있으실까봐 글을 남깁니다. 강의 36:36 에서 강사님께서 teardown 을 정의해주실 때 @AfterEach 를 사용해서 매 테스트가 종료될때마다 db 를 깔끔하게 지워주도록 정의해주셨습니다. 해당 클래스( ProductServiceTest.class ) 에서 실행할 때는 문제가 되지 않고 정상적으로 작동을 합니다. 그러나 다른 테스트(ex, OrderServiceTest.class ) 에서는 @BeforeEach 를 사용해서 teardown 을 구현했는데 이 때문에 간극이 생겨 전체 테스트 를 돌렸을때 ProductServiceTest.class 에서 에러 가 발생합니다. 따라서 @BeforeEach 로 변경하여서 해결할 수 있었습니다.

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
leeseongju 댓글 2 좋아요 0 조회수 570

이벤트리스너 함수를 지정할 때, 화살표 함수와 그냥 함수의 차이

해결됨

따라하며 배우는 리액트 A-Z[19버전 반영]

안녕하세요. 현재 섹션 3 수강 중인 수강생입니다. todo App을 만들고 있는데, X 버튼 구현하는 부분에서 onClick 이벤트 발생 시 작동하는 함수를 삽입해주는 부분인데요. onClick => {handleClick(data.id)} 이렇게 입력하니 웹페이지가 제대로 동작하지 않고, 아래처럼 화살표 함수로 바꿔주니 정상적으로 동작합니다. <button onClick={() => handleClick(data.id)}> x </button> 찾아보니 함수명으로 넣어주는 경우는 렌더링 시 함수가 바로 실행되고 click 이벤트 발생 시엔 함수의 반환값이 중괄호 안에 들어간다고 하고, 화살표 함수로 넣어줄 경우 의도한대로 click이벤트 발생 시에 함수가 실행된다는 걸 알게됐는데요, 이런 부분은 리액트 동작 원리 상 이렇게 되는거니 그냥 받아들이면 될까요? 아니면 제가 js 문법에 대해 이해가 부족해서 이해가 안가는 걸까요...? 추가적으로, 그렇다면 리액트에서 이벤트리스너 함수를 넣을 때는 무조건 화살표 함수로 넣는게 맞는건가요?

  • react
  • redux
  • tdd
  • typescript
  • next.js
  • 소프트웨어-테스트
김민희 댓글 2 좋아요 0 조회수 702

vscode 쓰실때 자동완성 문의드립니다

미해결

따라하며 배우는 리액트 A-Z[19버전 반영]

안녕하세요~ 터미널에서 auto suggestion 처럼 코드 제안하는 회색 글씨가 보이던데 어떻게 하셨는지 알 수 있을까요?

  • react
  • redux
  • tdd
  • typescript
  • next.js
  • 소프트웨어-테스트
wkdejrtlr 댓글 1 좋아요 0 조회수 1054

Optional에 대한 처리

해결됨

Practical Testing: 실용적인 테스트 가이드

학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요! 먼저 유사한 질문이 있었는지 검색해 보세요. 서로 예의를 지키며 존중하는 문화를 만들어가요. 강의 잘듣고 있습니다. persistenceLayer 계층 테스트에서 repository 를 테스트할때 Optional<Entity> 형태로 반환하는 함수를 테스트한다고 할때 어떤식으로 테스트를 작성해주어야 되나요? 예를 들어 특정 id를 가진 멤버를 조회한다고 하면 반환값이 Optional<Member>가 될텐데 무조건 찾는 테스트를 한다면 그냥 get()을 붙여서 Optional이 아닌 객체로 꺼내도 되나요?

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
나뭇잎 댓글 2 좋아요 0 조회수 496

메소드 파라미터 변수명규칙

미해결

견고한 JS 소프트웨어 만들기

클릭카운터 모듈 - 스펙 3에서 _data로 변수명을 하시는데요 강의하시면서 사용하시는 변수명 규칙이 있을까요?

  • tdd
  • 소프트웨어-테스트
  • jasmine
노트북은맥북이지 댓글 1 좋아요 0 조회수 333

@JoinColumn 생략?

미해결

Practical Testing: 실용적인 테스트 가이드

안녕하세요, 연관관계를 매핑할 때 @ManyToOne 쪽에 @JoinColumn을 항상 써왔는데 생략을 해도 문제가 없는것 같더라구요? 그렇다면 @JoinColumn는 굳이 안써도 되는걸까요?? 마찬가지로 실무에서도 생략하나요?? 감사합니다!

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
lch9502 댓글 2 좋아요 0 조회수 684

REST Docs 관련 질문

미해결

Practical Testing: 실용적인 테스트 가이드

안녕하세요. 강의를 들으면 실습하던중 강의와 다른 내용이 있어서 질문 드립니다. Spring REST Docs를 만들어내는 과정에서 gradle의 build나 asciidoctor 태스크를 실행했는데, build 폴더에 변환된 index.html이 생성이 되지 않습니다. 강의에서 사용하는 환경과 다른점은 스프링부트 3이상 버전을 사용한다는 점밖에 없고, 운영체제, 나머지 build.gradle이나 테스트 코드는 모두 동일한데, 변환된 html이 생성되지 않는 이유가 있을까요? + 추가로 build 시에 생성되는 bootJar 파일을 압축을 해제해서 보았더니 내부의 BOOT-INF/classes/static 에도 index.html 파일이 들어가있지 않았습니다.

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
세승 댓글 2 좋아요 0 조회수 698

재고 차감 시도 다른 접근법

미해결

Practical Testing: 실용적인 테스트 가이드

안녕하세요. 좋은 강의 오늘도 감사히 잘 들었습니다. 강사님께서 HashSet 자료구조를 이용하여 중복을 제거하는 방법을 선택하셨지만 전 다른 방법으로 접근해 보았습니다. 상품별 counting 한 결과인 productCountingMap 을 이용해보았는데요. 이미 해당 객체는 productNumber 가 중복이 걸러진 상태로 key 값으로 잡혀있고 quantity 가 value 에 정의되어 있어서 이를 그대로 활용해 보았습니다. //상품별 counting Map<String, Long> productCountingMap = createCountingMapBy(stockProductNumbers); //재고 차감 시도 productCountingMap.forEach((key,value)->{ Stock stock = stockMap.get(key); int quantity = value.intValue(); if(stock.isQuantityLessThan(quantity)){ throw new IllegalArgumentException("재고가 부족한 상품이 있습니다."); } stock.deductQuantity(quantity); }); 감사합니다

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
leeseongju 댓글 2 좋아요 2 조회수 688

n+1질문입니다!

미해결

Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트

안녕하세요 강의 잘듣고 있는 수강생입니다. 헥사고날 아키텍처를 이번 토이프로젝트에 적용하면서 강의에서 알려주신대로 설계를 이렇게 유연하게 변경하면 n+1문제도 해결 할 수 있다고하셨는데 예를들면 MemberRepository impl에서 멤버 아답터만 주입받고있는상황에서 팀 엔티티랑 연관관계가있는 상황에서 N+1 문제를 해결하려면 MemberRepository impl 에서 memberRepository말고 TeamRepository도 주입받아서 한번에 다 불러와서 도메인 엔티티에 저장해야하나요? 아니면 서비스 계층에서 각각 레파지토리에서 불러온다음 MemberRepository에서 넘겨준다음 도메인 모델을 리턴할때 넣어줘야 하나요 n+1문제를 서비스계층에서 결합할지 레포지토리 계층에서 결합할지 궁금해서 질문드립니다.

  • spring
  • tdd
  • jpa
  • 소프트웨어-테스트
  • unittest
권기준 댓글 2 좋아요 0 조회수 915

res.status(201) 부분에서 typeerror가 발생합니다

미해결

따라하며 배우는 TDD 개발 [2023.11 업데이트]

에러메시지: TypeError: Cannot read properties of undefined (reading 'status') res.status(200); 해당 코드에서 발생하는 에러인데 강사님이 코드돌리실때는 해당 에러가 발생하지 않는데 제 pc에서는 왜 에러가 발생하는지 잘 모르겠습니다... 코드는 강의에서 입력하신 그대로 따라서 했습니다

  • node.js
  • mongodb
  • express
  • supertest
  • tdd
  • jest
  • mongoose
  • 소프트웨어-테스트
kjyong702 댓글 1 좋아요 0 조회수 413

서비스단 Transactional에 대해 질문 드립니다

해결됨

Practical Testing: 실용적인 테스트 가이드

안녕하세요! 서비스 클래스 상단에 @Transactional(readOnly = true) 옵션을 두는 경우에 대해 질문이 있습니다. 만약 Transactional을 적용하고 싶지 않은 메서드가 있으면 어떻게 하는 것이 좋을까요? 저의 경우 외부 api 요청을 보내고 응답을 반환하는 메서드에 Transactional을 적용하지 않으려고 합니다 (CQRS에 대해 말씀해주신 부분을 듣고 애초에 외부 API 호출하는 기능이 분리 되어야 하나 싶기도 드네요 ㅠㅠ) @Service @Transactional(readOnly = true) @RequiredArgsConstructor public class SpotService { private final MapApiClient mapApiClient;

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
code-tree 댓글 3 좋아요 0 조회수 922

인기 태그

인프런 TOP Writers

주간 인기글