본문 바로가기

분류 전체보기152

TIL 230713 : 테스트코드..? 강의를 들으며 느끼는 것 중 하나로 단순히 코드를 짜고 오류가 나지 않게 작동하는 것 이외에 많은 역량이 필요한데, 그 중 하나가 테스트 코드를 작성하고 이를 유지보수 할 수 있는 능력이라고 느끼고 있다. 여러 인터뷰나 자료들을 봤을 때 그렇게 느꼈다. 그리고 그러한 테스트에 대해 JUnit5를 활용한 실습을 살짝 진행했고, 워낙 처음보는 내용들이 많아 정리해보고자 한다. 단위테스트, 통합테스트 몇 시간을 실행해보지도 않은 채 계속해서 코딩하다가 마침내 실행을 했는데 오류가 난 경험이 있을 것이다. 숨이 턱 막히며 당장 오류를 고쳐야하는데 어디서부터 잘 못 된 건지 찾기 위해 시간을 거슬러 올라가야하는 수고까지 더해진다. 비슷하게 작은 단위에서부터 검증을 한 뒤 작은 기능들의 상호작용까지 검증하고 후반에.. 2023. 7. 17.
TIL 230712 : 자바의 람다식 짚고 넘어가기(2) 메소드 참조 https://thiswooin.tistory.com/50 TIL 230711 : 자바의 람다식 짚고 넘어가기. 조금은 머쓱한 얘기지만 자바의 기본 문법을 배울 때 잘 이해되지 않고 다른 것들에 밀려 유보해두었던 람다와 스트림에 대해 다시 한 번 공부를 해서 개념을 짚고 넘어가보려 합니다. 강의를 thiswooin.tistory.com 지난 시간 이어서 메소드 참조에 대해서도 정리해보려 한다. 메소드 참조 Page responseDtoList = products.map(ProductResponseDto::new); 위 코드에서 맨마지막 부분이 의문이었다. 모던자바 문법 중 하나로 메소드 참조라는 문법이다. 예시 (left, right) -> Math.max(left,right); 위와 같은 람다식에서 M.. 2023. 7. 13.
TIL 230711 : 자바의 람다식 짚고 넘어가기. 조금은 머쓱한 얘기지만 자바의 기본 문법을 배울 때 잘 이해되지 않고 다른 것들에 밀려 유보해두었던 람다와 스트림에 대해 다시 한 번 공부를 해서 개념을 짚고 넘어가보려 합니다. 강의를 들으며 이해가 안 됐던 코드 두가지가 있다. Product product = productRepository.findById(id).orElseThrow(()-> new NullPointerException("해당 상품은 존재하지 않습니다.") ); Page responseDtoList = products.map(ProductResponseDto::new); 바로, 람다식 그리고 메서드 참조이다. 람다식 람다식은 우선 코드를 간편하게 해주기 위해 태어난 것이다. 반대로 말하면 위의 람다식을 이용한 코드를 람다식이 없을 때.. 2023. 7. 12.
TIL 230710 : 다중 JSON 다루기 (JSONObject, JSONArray) 예전에 Post 안에 Reply를 그냥 리턴해서 오류가 난 적이 있다. JSON안에 값이 JSON의 배열인 형태였는데, 오늘 강의를 보며 이를 다루는 걸 다시봤다. String타입으로 받아온 JSON데이터. ResponseEntity에서 getBody를 통해 가져왔다. Body의 내용을 보면 키-값으로 이루어진 맵의 형태이지만, "items"키의 값은 배열 안에 또다른 JSON형태의 데이터들이다. 이렇게 값이 배열인 경우, 배열의 하나하나의 값이 JSON인 배열인 경우 JSONArray를 통해 배열형태로 가져올 수 있다. - 키값을 직접 명시해서 해당 키의 값에 해당하는 배열을 가져오는 형태. 그런 뒤 items라는 배열을 반복하며 Object인 item을 JSONObject로 형변환해서 ItemDto로.. 2023. 7. 10.
WIL 230709 : 스프링를 훑어 보며 FACTS 이번 일주일 동안 있었던 일, 내가 한 일 : JPA를 활용, 다양한 Entity간의 관계를 익히며 각각의 특성을 공부했다. 팀과제에 있어서는 1:N인 글과 댓글, N:M인 글과 태그이 연관관계를 맵핑하는 연습을 했다. FEELINGS 나의 감정적인 반응, 느낌 : 직접 코딩을 구현해보며 항상 느끼는 것은, 설명으로만 보는 건 쉬운데 직접 해보면 다양한 변수를 맞이한다. 동시에, 처음 접하는 다양한 개념들을 표면적으로 다양하게 배우다보니 어떤 개념이 낯선지 헷갈린다. 다행히 리뷰를 해보며 어떤 것들을 좀 더 복습하고 심화된 개념들을 더 파고들지 정리가 되어서 잘 됐다. FINDINGS 그 상황으로부터 내가 배운 것, 얻은 것 : N:M인 글과 태그를 설정하며 최초로 글을 작성할 때의 코딩을 하.. 2023. 7. 9.
TIL 230707 : 다른 팀의 발표를 보고 오늘 뉴스피드 팀과제 발표가 있었다. 다양한 기능을 구현한 팀부터 이러저러한 사정으로 팀원의 부재로 백엔드에 집중한 팀 등 다양했다. 모든 팀으로부터 배울점들이 있었다. 간략히 아래에 정리해본다. 폴더를 도메인별로 나눴다 강의를 듣고서 작업을 하다보면 보통 왼쪽처럼 폴더를 나누게 되는데, 이제 도메인이 다양해지면 저 폴더를 각 도메인에 (Reply, Post, User, Info 등) 나누어서 해당 패키지 내에서 독립적으로 의존하게 작업하기도 했다. 이를 튜터님도 칭찬해주셨고, 나도 시도해봐야겠다라고 생각했다. github의 issue, pull request 활용 매번 느끼지만 결국 협업이다. 내가 빠르게 10중에 10을 내 작업에 투자해서 진행하고 싶지만, 나의 시간 2를 투자해 팀에 10의 이득을 .. 2023. 7. 7.