💋 오늘 공부한 내용 우리 서비스의 페르소나를 정했고, 페르소나를 토대로 기능 요구사항을 작성했다. 1차 완성이긴 하지만 진짜 머리 빠개졌고 너무 기쁘다. 위의 내용은 오늘 강의에서 들은 내용인데, 곧바로 팀에서 반영해봤다. 나름 효과적인듯 다른 크루들에게 좀 세세한 부분에서 (취향 차이) 어떤 것이 더 좋을지 물어봤는데, 팀 내에서 생각하는 것과 다른 사람들이 생각하는게 꽤 달라서 좀 새로웠다. 강의도 좀 짬짬이 들었다고 생각했는데 은근 많이 들은듯??? 💋 감정 회고 회원가입 관련해서 여러 가지 의견이 있었는데 내 의견으로 되어서 기분이 좀 좋다! 페르소나 만들기 할 때 좀 재능 있는 듯! 다른 크루들이 좋아해서 기분 좋았다. 💋 오늘의 포스팅
💋 오늘 공부한 내용 오늘도 역시 이리내랑 만나서 카공을 했다. 테스트 데이터 격리에 대해서 고민을 좀 해봤다. 프로덕션 데이터 vs 테스트 데이터 아예 다른 데이터베이스를 사용하도록 test/src application.properties를 별도로 설정해서 분리할 수 있음 테스트 코드 간 데이터 격리 각 테스트 실행 후 매번 delete함 => 테스트가 중간에 실패하는 경우 다른 데이터가 들어갈 수 있음 초기화하는 sql 파일을 별도로 작성해두고 어노테이션으로 설정해 두는 방법 @Sql(scripts = {"/truncate.sql"}, executionPhase = BEFORE_TEST_METHOD) @AfterEach같은 메서드 내에서 직접 설정하는 방법 트랜잭션 사용해서 매 테스트 메서드 후 데이..
💋 테스트 데이터 격리의 필요성 테스트 코드를 통해 아래 코드를 실행했다. @Test void findItems() { Item item1 = new Item("gitchan", 1000, 10); Item item2 = new Item("irene", 1000, 20); Item item3 = new Item("oing", 1000, 30); itemRepository.save(item1); itemRepository.save(item2); itemRepository.save(item3); List result = itemRepository.findAll(); assertThat(result).containsExactly(item1, item2, item3); } 하지만 실패했다. 이유는, findAl..
💋 오늘 공부한 내용 스프링 더미데이터 추가 관련해서 새로운 것을 알게 되었다. 스프링 빈으로 등록된 클래스의 메서드에 @EventListener(ApplicationReadyEvent.class)라고 된 어노테이션을 붙여주면, 컨테이너 초기화 직후에 해당 메서드를 실행한다. 빈 @PostConstruct와 기능은 비슷하지만, event listener를 사용하는 방법은 타이밍 이슈가 발생하지 않기 때문에 더 안전하다. 더미 데이터가 추가될 상황이 있고, 추가되지 않으면 되는 상황이 있다. 빈으로 등록할 지 여부를 상황(프로필)에 따라서 설정할 수 있는데, 이 때 @Profile 을 사용하면 된다. 방법도 간단 빈을 수동으로 등록하면서, 아래와 같이 @Profile 어노테이션을 추가하면 된다. appli..
💋 오늘 공부한 내용 1% 네트워크 책을 (좀 건너뛰긴 했는데) 거의 다 읽었다! 내일이면 다 읽을 수 있을듯 서버 부하 관리에 대한 부분을 꽤 재밌게 읽고 리내랑 이야기도 했다. 레벨2 테코톡때 아몰랑 어려웡 했던 내용들 다 재밌는 것 같다. 💋 감정 회고 일본가서 뒤지게 놀고 왔더니 갑자기 공부가 재밌어졌다. ㅎㅎㅎㅎㅎㅎ 테코톡도 심심할 때마다 보는데 리뷰어들이 자주 나와서 재밌다. 💋 오늘의 포스팅
네트워크 지식은 전공지식이어서 그런가, 공부를 해도 해도 하루만 지나도 계속 까먹는다. 이번엔 진짜 잊지 않겠다는 마음으로 포스팅을 꼼꼼히 쉬운 언어로 해보려고 한다. 다른 사람들에게도 도움이 되면 좋겠다! 💋 OSI 7 Layer란? OSI 7 계층은 네트워크 통신에서 기본이 되는 구조로, 네트워크 관련 기술을 공부하거나 개발할 때 중요한 개념 중 하나이다. 내가 어딘가 다른 컴퓨터로 데이터를 보내고 싶다 하면, 처음에는 가장 사람의 언어에 가까운 Application Layer부터 시작한다. 아래 계층으로 내려갈 수록 데이터를 전송할 수 있는 형태로 네트워크 개발자들이 정해놓은 수많은 약속에 따라 포장하고, 결국에는 전송 가능한 전선에 보내는 01010101의 형태로 만들어서 다른 컴퓨터로 보내게 된..
💋 오늘 공부한 내용 Spring JDBC 강의에서 JDBC를 직접 사용해서 개발하는 부분을 실습했다. 레벨1 마지막에 하던 내용인 것 같은데 이제서야 공부중 ㅎㅎㅎㅎ 근데 이제서야 많은게 이해되기 시작했다. DataSource에 대해서 드디어 알게 되었다...! 먼저 커넥션에 대해서 이해할 필요가 있다. 데이터베이스에 커넥션을 얻는다는 건 뭘까..? 애플리케이션 서버에서 데이터베이스 서버로 "연결 되었니?" "되었어" "오예" 같은 세번 악수하고(3 way handshake), 연결이 확인되면 id, pw 부가정보를 전달하고 데이터베이스에 접근할 수 있는지 인증 인가를 한 후에, 커넥션을 완료해서 Connection 객체를 애플리케이션 로직으로 반환한다. 헥헥 커넥션을 얻는 방법에는 크게 두 가지가 있..
💋 JDBC JDBC(Java Database Connectivity) JDBC는 데이터베이스에 접근하는 기능의 표준화로 개발자들이 데이터베이스를 종류별로 공부해야 하고, 데이터베이스 종류에 따라서 비즈니스 코드를 수정해야 하는 문제를 해결했다. 크게 기능을 구분하면, 데이터베이스에 커넥션 연결하기, SQL 매핑하기, 결과 응답 처리하기 세 가지로 나눌 수 있다. JDBC를 직접 사용해본 사람이라면 각 기능을 아래와 같이 연결해서 생각하면 편할 것 같다. 데이터베이스에 커넥션 연결: DriverManager.getConnection() SQL Mapping하기: PreparedStatement.setString(1, "아아악") 결과 응답 처리하기: ResultSet.next(), ResultSet.ge..
💋 H2란? H2는 가볍고 편리한 데이터베이스다. 개발 과정에서, 혹은 테스트 용도로 주로 사용하며, SQL을 실행할 수 있는 간단한 화면을 제공한다. 💋 H2 설치하기 ✔ H2 dependencies 추가 build.gradle 파일에서 dependencies에 아래와 같은 코드를 추가한다 runtimeOnly 'com.h2database:h2' 반드시 새로고침 ✔ 스프링부트 버전에 맞는 h2 다운로드 https://www.h2database.com/html/download-archive.html Archive Downloads www.h2database.com 위 사이트에 들어가서 내 스프링부트 버전에 맞는 h2를 설치한다. 현재 내 스프링부트 버전에 맞는 h2 버전은 프로젝트 바에서 아래와 같이 ..
지인 부탁으로 업로드합니다! 1등 상금 1000만원 + 채용(산업기능요원 가능) 기회까지 얻을 수 있다고 하니 많은 참여 부탁드려요! [🌟총 상금 2000만원🌟] 세계 최고 체성분 분석기 제조 기업 '인바디'에서 메이커톤을 주최합니다 ! 세계 최고의 체성분 분석기 제조 기업 '(주)인바디'가 국내 기업이라는 사실을 알고계셨나요? 인바디는 1996년부터 시작해 현재에 이르기까지 매년 성장을 거듭하며 국내 뿐만 아니라 해외에서도 체성분 분석기의 대명사가 되었습니다. 이전에 인바디에서는 전문가용 장비를 주로 판매를 하였었는데요, 최근에는 가정용 인바디를 비롯해 인바디 밴드 등과 같은 컨슈머 제품까지 사업 영역을 확장하고 있습니다. 그에 따라, 대학생 분들의 참신한 아이디어를 듣고, 컨슈머 시장의 새로운 기회를..