분류 전체보기
-
[테스트 격리] 일관된 테스트 격리를 적용하는 트러블 슈팅백엔드/Spring 2023. 8. 6. 01:56
제 팀은 각 테스트 종류마다 테스트 격리를 아래와 같이 진행했습니다. 1. 인수 테스트 : BeforeEachCallback을 사용한 DatabaseCleaner 2. 서비스 테스트 : @Transactional 3. 리포지토리 테스트 : DatabaseCleaner 4. 도메인 테스트 : 없음 여기까지만 보면 바로 문제를 파악하신 분들도 있겠네요 😅 1. 테스트 코드가 실패하다 아무런 문제 없이 프로젝트를 진행하고 있던 어느 날, 느슨해진 테스트 코드 작성에 긴장감을 불어넣는 상황이 발생했습니다. 로그인 기능을 구현하는 브랜치에서 테스트를 돌리는데, 서비스 테스트 1개가 실패하는 것...!! 처음에는 서비스 메서드 자체에 문제가 있는 줄 알았습니다. 하지만 생각해보니 만약 메서드 로직이 잘못 됐으면 테..
-
제3회 한국항공대 프로그래밍 경진대회 (KAUPC) 후기후기/활동 후기 2023. 8. 5. 02:35
[개최자 후기] https://youngseo-computerblog.tistory.com/103 [후기] 2023 KAUPC 문제 출제 후기 제 3회 한국항공대학교 프로그래밍 경진대회 제3회 한국항공대학교 프로그래밍 경진대회프로그래밍에 관심이 있다면, 지금 바로 도전해보세요.kaupc2023.netlify.app대회 개최우리 학교는 경인지역 6 youngseo-computerblog.tistory.com [문제 확인하기] https://www.acmicpc.net/category/detail/3632 제3회 한국항공대학교 프로그래밍 경진대회(KAUPC) www.acmicpc.net [참조글] 제1회 한국항공대 프로그래밍 경진대회 1위 후기 제2회 한국항공대 프로그래밍 경진대회 개최 후기 [기간] 3월 ..
-
[후기] 클린 코더후기/책 후기 2023. 7. 2. 23:46
동아리 선배님이 이 책을 추천했다 로버트 마틴이 자신의 경험을 이야기를 하며, 소프트웨어 장인 정신을 가지려면 어떤 방향으로 발전해야하는지 소프트웨어 스킬이나, 커뮤니케이션 스킬, 애자일 방법론을 알려주는 내용이다. 책을 읽으며 느낀 점은 IT 기술은 빠르게 변화하지만, 개발의 근본 지식은 CS인 것처럼 이것도 옛날에 중요했던 내용은 지금도 중요하다는 것이다. 코드에 녹아있는 CS 지식이 중요한 것은 당연한 것이고, 책에 나와 있는 내용들을 읽어보니 우테코에서 요구하는 내용들이 많아서 더 공감하며 읽었던 것 같다. 몇몇 내용은 이미 겪었던 것이라 더 잘 와닿는 내용도 있었다. 우테코를 하면서 나는 소프트웨어 장인과는 거리가 먼 사람이구나..라고 생각했는데, 이 책을 읽어보고 나서는 노력하는 자세만 가져도..
-
[Spring] 테스트 코드 수행 시간 최적화하기백엔드/Spring 2023. 5. 8. 22:50
결론 AS-IS: 40여개의 테스트 수행시간 - 13초 ~ 14초 TO-BE: 80여개의 테스트 수행시간 - 2초 1. @SpringBootTest, @WebMvcTest, @JdbcTest 위 세가지는 테스트에서 사용할 수 있는 어노테이션입니다. 각 어노테이션은 생성되는 빈의 수에 따른 차이가 존재합니다. @SpringBootTest는 실제 서버 실행시 필요한 빈을 모두 생성합니다. @WebMvcTest는 웹 환경에 필요한 빈만 생성합니다. @JdbcTest는 Jdbc 환경에 필요한 빈만 생성합니다. 이렇기 때문에 테스트하는 목적에 따라 어노테이션을 잘 활용해서 적용할 수 있습니다. 위 세가지 어노테이션 말고도 다양한 테스트 어노테이션이 있으니 잘 적용하면 시간을 살짝 단축시킬 수 있습니다. [예시] ..
-
[후기] 운영체제와 정보기술의 원리후기/책 후기 2023. 4. 25. 22:15
운영체제 수업의 GOAT인 반효경 교수님이 쓰신 책이다. 책 내용은 KOCW 내용과 매우 유사하므로 KOCW 강의를 듣거나, 책을 읽거나 선택을 하면 될 것 같다. 나는 강의도 보고 책도 읽었는데, 굳이 반복해서 봐야했을까라는 생각이 많이 들었다 책과 영상을 추천해주는 이유는 깃허브 면접 레포에 있는 대부분의 OS 질문에 대한 답변을 이 강의/책으로 해결할 수 있다. 다만 아쉬운 점은 교수님이 수업에서 말했듯이 한 층 더 깊은 내용은 따로 추가적인 학습이 필요하다. CS 면접 준비 직전에 아마 영상이나 책을 한 번 더 볼 것 같다
-
[후기] 초보 웹 개발자를 위한 스프링 5 프로그래밍 입문후기/책 후기 2023. 4. 25. 22:07
책은 진작 다 읽었는데.. 후기 글을 쓰기 귀찮아서 미루다가 드디어 쓰게 됐다 목차를 보면 알 수 있듯이 Ch.02 ~ Ch.07은 스프링 기초에 대해 배우고, Ch.08 ~ 부터는 스프링 MVC 기초에 대해서 공부한다. 후기 글을 쓰면서 저자님이 쓴 내용을 찾아봤는데, `처음 스프링을 배우고자 하는 독자들이 입문할 때 필요한 것은 스프링의 방대한 내용이 아닌 기초와 전반적인 흐름을 잡아주는 것으로 생각한다.`로 책을 소개한 문장이 있다. 책을 다 읽고 이 문장을 읽어보면 정말 책을 소개하는 완벽한 문장이라고 생각한다. 특히 `스프링 코드를 사용하기만 했지, 기본적인 내부 동작은 몰랐던 사람들`도 추천을 해주고 싶다. 스프링 MVC는 옛날 버전이기 때문에 대충 훑고 책을 덮었다가, 스프링의 역사를 체험해..
-
[Spring] Dispatcher Servlet에서 핸들러가 저장하고, 매핑되는 과정백엔드/Spring 2023. 4. 21. 23:49
프로그램이 실행되면 어떻게 핸들러가 만들어지고, HTTP 요청을 하면 어떻게 매핑이 되는 것일까? 1. 서론 한 크루가 컨트롤러 클래스를 @Bean으로 등록해서 사용하려니까 오류가 발생했었다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 @Configuration public class SpringConfig { private final DataSource dataSource; @Autowired public SpringConfig(final DataSource dataSource) { this.dataSource = dataSource; } @Bean public RacingGameController racingGameContro..
-
@Transaction를 적용하면 어떻게 하나의 Connection을 사용할까?백엔드/Spring 2023. 4. 14. 00:11
자동차 경주 웹 미션을 하는데 페어가 JdbcTemplate update를 여러 번 호출하면 @Transaction 을 적용해도 Connection이 여러번 열리고 닫히는지 궁금해했다. 그래서 JdbcTemplate update 내부 코드를 보니까 update를 할 때마다 Connection이 한 번 열리고 닫히는 것 같아보였다. 그래서 집에 돌아와 @Transaction을 적용하면 어떻게 달라지는지 내부 코드를 보고 정리를 해보았다. 먼저 JdbcTemplate의 update 코드를 확인해보자 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 @Override public int update(final PreparedStatementC..