시작이전 회고록에서 취업이 된다는 늬앙스를 보였지만 카카오 동계 취업연계 인턴공채는 최종면접에서 고배를 마시게 되었다,,ㅋㅋ 카테캠을 졸업한 1기 학생이었고 수료시에도 좋은 평을 들었어서 현재 와서 돌아보면 꽤나 괜찮은 기회였는데 반대로 현재와서 그때의 내 cs 수준을 생각해보니 합격했어도 버텼을까? 라는 생각이 들기도 한다. 이후에 네이버 공채를 비롯해서 올리브영이나 금융쪽 개발직군 등 10여군데를 지원했지만 네이버만 코테를 볼 기회가 있었고 나머지는 서류에서 떨어지는 대참사(?)를 맞게 된다. 부정사실 글을 쓰는 현재로써 내가 it 직군으로의 전환 결심을 하고 유우명한 유튜버인 노마드 코더의 '바닐라 js 로 만드는 todo list' 를 주섬주섬 만들었던 순간으로부터 만2년을 채워가는 시점이다...
목차 개요본 포스팅은 Oracle, MySQL의 공식문서를 참고 하였다.https://dev.mysql.com/doc/refman/8.4/en/glossary.html#glos_segment MySQL :: MySQL 8.4 Reference Manual :: MySQL GlossaryMySQL 8.4 Reference Manual / MySQL Glossary These terms are commonly used in information about the MySQL database server. A .ARM file Metadata for ARCHIVE tables. Contrast with .ARZ file. Files with this extension are always included in..
목차 개요SQLP 자격증 준비중에 하드/소프트 파싱에 대해서 나왔고 대용량 트래픽이 몰리는 상황에서 로그인 시에 db에서 회원 정보를 받아오는 것을 예시로 들어 순회시에 바인딩 변수를 이용하면 db엔진에 SQL 이 N개가 수행되는것이 아니라 1개만 수행되고 이후엔 소프트파싱을 이용해 최적화를 한다고 명시되어 있었다. 따라서 Spring 에서는 바인딩 변수를 어떻게 이용되고 있는지 찾아보고 작성하게 되었다. 결론적으로는 Spring에는 @RequestParam 등 Data binding 을 도와주고 있는 어노테이션들이 존재하였는데 오늘 살펴볼 SQL과의 Data binging 에서는 = :{속성} 의 JPQL 쿼리에 해당 속성을 @Param 어노테이션을 이용하여 지정해주는 방식을 이용하고 있었다. ht..
기획부터 운영까지 반년이 넘어가는 시점이다.초기 계획에 비해 규모가 커지고 있다. 새로운 디자이너 영입(결정 과정이 쉽지는 않았다)과 프론트엔드 인원 충원으로 작업이 시작되었으며, 디자인이 새로워졌다. 원래 계획과 현재 기능을 비교하자면 아래와 같다. 원래 계획과 현재 기능을 비교해 보면, 기능 확장이 있었고 앞으로 2호점도 생길 예정이며, 토스 결제 기능이 추가된 주문 기능도 포함될 예정이다. 그러나 현재 코드 구조에서는 서로 관련이 없는 코드들이 하나의 패키지에 모여 있어, 새로운 기능을 추가하거나 유지보수할 때 불편함을 느낀다. 모듈화의 필요성따라서, 모듈화를 통해 코드를 분리하고 관리하기로 결정했다. 최근 회자 되고 있는 DDD(Domain-Driven Design)나 MSA(Micros..
개요24년 2월에 처음 오픈하여 운영하기 시작한 Dayner 커피 사이트 운영 중 발생한 접속 장애 및 최근 도입한 캐시 메커니즘의 성능 분석 필요성을 느껴서 도입하게 되었습니다. AWS 내부에서도 Cloud Watch 로 지원을 해주고 있지만 캐시히트율이나 JVM 내부에 대한 분석은 지원해주지 않기 때문에 AWS EC2 상의 스프링 애플리케이션을 로컬 환경에서 Grafana를 통해 모니터링하기로 결정했습니다. 이틀간 테스트 해본결과 로컬에서 계속 가동하여도 큰 문제는 없었으나 추후에 안쓰는 라즈베리파이나 무료 ec2 에 올려놔도 좋을것 같습니다ㅎㅎ 준비1. AWS EC2 인스턴스에서 실행 중인 스프링 부트 애플리케이션+promethus 엔드포인트 활성화2. Docker (Promethus, Grafa..
목차 개요 스프링 그리고 Java를 사용하다 보면 null 값 핸들링이 무척 중요하다는 사실을 깨닫고 적절한 처리에 대해 고민을 하게 된다. 특히 NullPointerException의 발생 또한 자주 접하게 된다. Java에서는 이러한 문제를 해결하기 위해 Optional 클래스를 도입했다. Optional (Java Platform SE 8 ) A container object which may or may not contain a non-null value. If a value is present, isPresent() will return true and get() will return the value. Additional methods that depend on the presence or a..