Hot

정규화와 정규화가 필요한 이유

데이터베이스 개론 2판 내용을 참고하여 작성하였습니다. 정규화 관련 없는 속성을 하나의 릴레이션에 모아두면 문제가 발생할 수 있습니다. 데이터베이스에서 싫어하는 데이터 중복이 많이 나타나고, 예기치 못한 일들이 발생할 수 있습니다. 싫어하는 음식을 먹지 않는 것처럼 릴레이션에 관련 없는 속성이 들어가지 않게 하고, 친한 속성끼리 릴레이션을 구성해주면 됩니다. 속성들의 친밀도를 판단하고, 이 기준에 따라 릴레이션을 구성하는 방법이 정규화입니다. 또한 데이터베이스를 설계한 후 설계 결과물을 검증하기 위해 사용하기도 합니다. 데이터베이스를 잘못 설계하면 불필요한 데이터 중복이 발생하여 릴레이션에 대한 데이터의 삽입, 수정, 삭제 연산을 수행할 때 부작용이 발생할 수 있습니다. 이러한 부작용을 이상(anomal..

데이터베이스 2022.11.02 2

여러 개의 파라미터를 이용한 JUnit 테스트 @ParameterizedTest, @MethodSource

알고리즘을 풀 때 단위 테스트를 통해 매 실행시 케이스 입력의 귀찮음을 최소화하고자 했습니다. @ParameterizedTest - @ParameterizedTest 어노테이션을 사용하여 여러 개의 파라미터를 하나의 테스트를 통해 확인할 수 있습니다 - @Test 어노테이션 대신 @ParameterizedTest를 명시해주면 됩니다 - @ParameterzedTest를 사용하기 위해서는 하나 이상의 Source 어노테이션을 붙여줘야합니다 - Source 어노테이션에는 @ValueSource, @MethodSource, @NullSource, @EmptySource 등등이 있습니다 @MethodSource 저는 2차원 배열의 케이스를 입력하고자 @MethodSource 어노테이션을 사용하게 됐습니다. - ..

테스트코드 2022.08.09 4

2022 코드스쿼드 백엔드 마스터즈 코스 회고록

더보기 올해 1월부터 6월까지 있었던 코드스쿼드 마스터즈 코스 과정에 대한 회고를 작성해보고자 합니다. 수료 후 한 달이 지나 8월이 되었지만 기억이 더 희미해지기 전에 늦은 회고를 작성하고자 합니다. 목차 1 코드스쿼드를 선택한 이유 1-1 마스터즈 코스 입과 과정 2 무엇을 배웠나 2-1 CS10 2-2 Java, Spring 클래스 2-3 프로젝트 기간 3 성장했나 3-1 코드 리뷰 3-2 동료에게 의존하던 습관 3-3 나만의 페이스 4. 앞으로는 코드스쿼드를 선택한 이유 프로그래밍을 제대로 배우고 싶은 마음이 있었지만 뭐부터 해야 할지 몰라 헤매고 있었다. 혼자 하는 것보단 부트캠프를 통해 어떤 걸 공부해야 하는지 알고 싶었다. 광고를 통해 알게된 부트캠프를 결제했다 취소하고, 국비 학원에 하루 ..

회고 2022.08.07 22

코드스쿼드 첫 번째 프로젝트 회고

2022년 4월 4일부터 4월 15일까지 2주간 진행했던 프로젝트에 대한 회고 글입니다. 2주차 프로젝트 데모 시간에 발표한 내용을 기반으로 글을 작성해보았습니다. 협업 이번 프로젝트의 핵심 키워드는 협업이었다. 아무래도 팀 프로젝트가 처음이다보니 협업을 연습해본다는 생각으로 협업에 제일 먼저 생각하게 됐다. 감사하게도 함께 프로젝트 하게 된 쿠킴도 같은 생각이어서 안드로이드 팀원인 우기와 정박과 함께 프로젝트 초기에 앞으로 어떤 방향으로 프로젝트를 진행할 지 많은 대화를 나누게 되었다. 쿠킴이 주도해주신 덕분에 공유 notion 을 만들어서 매일 팀 스크럼과 회의 내용을 기록하고, 프로젝트에 앞서 그라운드 룰을 도입할 수 있었다. 그라운드 룰에는 프로젝트에 집중하는 시간, 브랜치 전략, 커밋 컨벤션, ..

회고 2022.04.16 0

New

more

외부로부터 의존하지 않는 테스트 ... OAuth 로그인 테스트도 할 수 있다! (WireMock)

안녕하세요. 저는 개인 프로젝트에서 OAuth를 이용해 로그인을 구현하고 있습니다. OAuth를 구현하고 테스트를 통해 OAuth 로그인의 동작을 확인하고자 했는데, 이때 OAuth API 서버와의 테스트를 어떻게 해야 하나 고민이었습니다. 고민한 결과 OAuth API 서버와 통신하여 테스트하거나, 해당 API 서버를 목으로 대체하여 데이터를 확인하는 방법이 있겠다는 생각을 했고, 또한 Postman과 같은 API 도구를 이용하여 테스트해 볼 수도 있었습니다. 하지만 OAuth 로그인을 테스트하기 위해 매번 Spring 서버를 띄워서 Postman에서 확인하는 건 비효율적이며 실제 OAuth API 서버와 통신하여 테스트하고자 한다면 API 서버는 제가 제어할 수 있는 대상이 아니기에 외부적인 요인으로..

테스트코드 2023.03.07 0

정규화의 종류

데이터베이스 개론 2판 내용을 참고하여 작성하였습니다. 지난 글에서 데이터베이스 정규화와 정규화가가 필요한 이유에 대해 알아보았습니다. 정규형 간의 관계를 그림으로 표현하면 다음과 같습니다. 정규형 중 가장 바깥쪽에 위치하는 제1정규형부터 알아보겠습니다. 제1정규형 (1NF, First Normal Form) 릴레이션에 속한 모든 속성의 도메인이 원자 값(atomic value)으로만 구성되어 있는 것 릴레이션이 제1정규형에 속하려면 릴레이션에 속한 모든 속성이 더는 분해되지 않는 원자 값만 가져야 합니다. 이벤트 참여 릴레이션에서 이벤트 번호 속성과 당첨 여부 속성은 하나의 고객 아이디에 해당하는 값이 여러 개입니다. 한 명의 고객이 여러 이벤트에 참여할 수 있어 이벤트 번호와 당첨 여부와 같이 다중 ..

데이터베이스 2022.11.04 1

정규화와 정규화가 필요한 이유

데이터베이스 개론 2판 내용을 참고하여 작성하였습니다. 정규화 관련 없는 속성을 하나의 릴레이션에 모아두면 문제가 발생할 수 있습니다. 데이터베이스에서 싫어하는 데이터 중복이 많이 나타나고, 예기치 못한 일들이 발생할 수 있습니다. 싫어하는 음식을 먹지 않는 것처럼 릴레이션에 관련 없는 속성이 들어가지 않게 하고, 친한 속성끼리 릴레이션을 구성해주면 됩니다. 속성들의 친밀도를 판단하고, 이 기준에 따라 릴레이션을 구성하는 방법이 정규화입니다. 또한 데이터베이스를 설계한 후 설계 결과물을 검증하기 위해 사용하기도 합니다. 데이터베이스를 잘못 설계하면 불필요한 데이터 중복이 발생하여 릴레이션에 대한 데이터의 삽입, 수정, 삭제 연산을 수행할 때 부작용이 발생할 수 있습니다. 이러한 부작용을 이상(anomal..

데이터베이스 2022.11.02 2

20221024 - 1030

이번주 한 일 알고리즘 학회 알바 좋았던 점 알고리즘 난이도를 비교적 쉬운 난이도의 문제를 풀면서 흥미를 되찾을 수 있었다 개선할 점 이번 주는 학회 일을 하느라 중간 중간 알고리즘을 푸는 것 외에 개인 학습을 하지 못했다. 소감 이번 주 SSG 인턴 서류 발표가 있을 예정이었는데 다시 미루어졌다. 기초조형학회에 가끔 나가서 일을 도와주고 있었다. 이번 주는 학회에 큰 행사가 있어 한 주 대부분을 학회 일로 보냈다. 나도 돈을 벌어야 하는 상황이었기에 한 주를 포기하고 일을 했다. 행사에서 에어팟 프로 2도 받고 기초조형학회 대학원생과 교수님들의 논문 발표도 들어보는 경험을 할 수 있어 좋았다.

회고 2022.10.31 0

20221017 - 1023

이번주 한 일 그림으로 배우는 HTTP 네트워크 2장 백기선 자바 스터디 12주차 라이브 영상 시청 nextstep 7장 UserDao 단계별 리팩토링 알고리즘 좋았던 점 추상 클래스와 익명 클래스를 사용해서 리팩토링을 해보았다. 아직까지 방법이 익숙하지 않아 바르게 한건지 잘 모르겠다. 추상 클래스와 익명 클래스에 대해 학습하고 고민해볼 수 있어서 좋았다 백기선 자바 스터디를 하면서 라이브 영상은 처음 시청해봤는데 유익한 부분이 많았다. 혼자 찾아보는 것도 중요하지만 다른 사람들은 어떻게 했는지 보는 것도 중요하다는 걸 느꼈다 개선할 점 알고리즘 풀이에 게을렀다 소감 알고리즘에 또 게을러졌다. 요즘 알고리즘 문제가 잘 안 풀리다보니 의욕이 많이 꺾인듯 하다. 피할 수 없기 때문에 방법을 연구해봐야겠다...

회고 2022.10.25 2