본문 바로가기

전체 글34

Kernel360 :: 커리큘럼 신청 ~ 온보드 후기, 회고, 추천유무 커리큘럼 진행 한 달을 목전에 두고 이번 기회에 한번 정리를 하고자 하는 글을 쓰기로 마음먹었다. 호오오오오옥시나 차후 이 커리큘럼에 관심이 있어 다음 기수에 지원을 하려고 하는 사람이 있다면, 글을 읽고 도움이 되기를 바라며 주저리주저리 한번 또 글을 써본다. 0. 왜 지원 했니? 앞서 나는 si에서 6년이라는 적지 않은 기간을 두고 업무를 한 경험이 있다. 비슷한 부류의 다른 회사로 이직을 한다거나 프리랜서로 계속 일을 한다면 아마 괜찮게 대우를 받았겠지만, 훈훈하고 따뜻한 원청의 갑질(?)과 같은 개발환경에서 했던 거만 또 하는 재미없는 분위기에 흥미를 잃었고 제일 중요한 건강이 나빠져 시원하게 퇴사를 지르고 아무것도 안 하고 쉬기로 했다. 퇴사하고 나서 쉬는 동안엔 참 좋았다. 스트레스받지도 않으.. 2023. 11. 5.
간단하게 알아보는 쿼리 실행계획의 중요성 이번 시간에는 같은 결과를 가져오더라도 쿼리 짜는 퀄리티에 따라 비용(cost)이 바뀌는 것에 대해 이야기 하고자 한다. 아주 기초적인 예시와 내용으로 작성 하였으므로 이해에 어려움이 발생하진 않을 것이라 본다. 위와 같은 사용자 정보를 담는 user_info 테이블이 있다고 가정을 하자. 이 테이블에는 더미데이터 회원정보가 1천건이 저장되어 있다. 내가 여기서 통계를 내기 위해 전체 회원수, 월 가입자 수, 6개월 이상 미접속자의 수3개를 조회하고자 한다. 쿼리 초보자의 입장에선 SELECT를 통해 세가지 값을 가져와야 한다는 것을 인지는 할텐데 문법상 select "column_name" from "table" 인 것을 생각하여 다음과 같이 조회를 했다고 가정해보자. 1 2 3 4 5 6 -- 전체 .. 2023. 11. 3.
junit 테스트코드 작성 환경에서 연결 db 변경 방법 오늘 tdd 방식으로 개발 진행중, 문득 assert로 테스트는 통과했으나 jpa와 실제 db간 연동후 데이터 반/출입 확인 후 눈으로 보고싶어 이것에 대해 세팅을 하고자 했다. 스프링부트 기준으로 디폴트 세팅은 h2를 바라보게 되어있다. (굳이 db를 타는 로직을 체크하는 경우) 결과적으로 바꾼 정보로 db connection은 성공했으나, insert나 select시 쿼리가 정상적으로 통과하지를 못했다. 이것을 해결하고 싶어 했으나 맨토링을 듣고보니 문제를 해결하고자 함으로써 tdd 테스트의 본질을 망각해버려 유의미한 데이터 반/출입을 수행하진 못했다. 테스트 코드 작성은 외부 환경에 영향을 받지 않고 독립된 환경에서 로직만 테스트를 수행하여야 한다. (db입출력 테스트는 통합테스트때 해도 충분하다는.. 2023. 11. 1.
hackerton :: shorturl "해줘" https://github.com/Kernel360/hackerthon1-doitfor GitHub - Kernel360/hackerthon1-doitfor: shortURL을 만들어주는 서비스입니다. shortURL을 만들어주는 서비스입니다. Contribute to Kernel360/hackerthon1-doitfor development by creating an account on GitHub. github.com 개요 최소한의 기술적 완성도를 가진 결과물을 단시간에 만들어 자신의 기술력을 파악, 빠른 학습의 대한 경험을 습득 프로젝트를 진행하며 코드의 품질과 기술적 협업 등을 이해하자. 프로젝트 목적, 목표 사용자가 원하는 url을 줄여 짧게 만든 url을 제공해준다 ! 플랫폼 목표 - 1일 1.. 2023. 10. 30.
bootup :: TwoStar https://github.com/Kernel360/boot-up1-twoStar 개요 실제 서비스 중인 플랫폼 또는 어플리케이션을 참고하여 플랫폼을 설계한다. 현실적인 협업에 대해 경험 하는 것을 목표로 하여 구현보다 기능 설계와 문서화에 집중하여 하나의 프로젝트를 만들 때 어떤 과정으로 어떻게 협업하는지를 느끼는 과정 프로젝트 목적 글로벌 sns 인스타그램을 모티브로 하여 sns 플랫폼을 설계함 주요기능 개발기간 2023.10.11 (수) ~ 2023.10.13 (금) 3days 기술스택 플랫폼 설계 과정이므로 기술 스택까지는 고려하지 못하였음. 기여도 1) 기여 한 부분 - 토의 진행시 팀원들이 진행중 갈피를 잡지 못 하였을 때 해결 방안 제안 - 요구 사항 명세서 게시물 검색, 조회 파트 작성 -.. 2023. 10. 28.
JPA , mybatis 와의 차이 (수정 中) JPA의 관한 기초 정보를 정리하는 글. +2024.01.13 너무 겉핥기로 대충 익히고 정리했던 초창기의 글을 보니 틀린 내용이 꽤 많아 부끄럽다. 다행인점은 짧다면 짧고 길다면 긴 한달이란 시간 사이 올바른 내용으로 다시 이해했다는 것. 1. JPA(Java Persistent API) JPA는, ORM 관점으로 DB와의 데이터를 주고받기 위한 API이자 프레임워크이다. ORM을 활용할 수 있도록 해주는 Hibernate 기반으로 만들어졌으며, 이를 보다 쓰기 편하게 해주는 역할이다. Hibernate는 ORM을 구현해주는 다양한 프레임워크중 하나이다. 2.ORM(Object Relational Mapping) ORM이란 이름 그대로 DB의 데이터를 객체로 연결해준다는 의미로 쉽게 이야기 하자면 sq.. 2023. 10. 26.