알고리즘 문제를 풀면 BFS문제가 많이 출제가 되는 것을 알 수 있다. BFS의 사전적 정의를 생각해보면 Breadth-First Search 너비 우선 검색으로 너비를 우선적으로 검색하는 알고리즘이다. 너비를 구한다는 것이 무슨 말일까? 간단히 생각해서 범위를 확장을 시킨다는 의미다. 확장을 시키려면 어떻게 하는것이 가장 효율적일까? 이것도 생각할 문제이긴 하지만 일반적으로 가장 효율적인 방식은 바이러스 처럼 점염을 시키는 것이 가장 빠를 것이다. 최근에 발생한 바이러스는 코로나바이러스다. 코로나 바이러스의 감염 방식은 여러가지가 있지만, 내가 생각할때 코로나 바이러스가 빠르게 확산을 시킬 수 있었던건 근처에 있는 사람에게 공기중으로 감염이 된것이 빠르게 확산을 시킨 이유가 아닐까 싶다. 이걸 다른 말..
블로그글을 안쓴지 1년이 넘어간다. 사실 이렇게 까지 운영을 안하려고 했던건 아니였는데 어쩌다보니 이렇게 되었다. 지금까지 나는 개발자라는 직업으로 발전을 시킬 수 있을지 고민을 했다. 어떻게 하면 더 잘 할 수 있을지.. 하지만 올해는 아니였다. 개발자에 대한 능력을 키우는 것보다 내 자신에 대해 조금더 심도 깊게 생각할 시간이 필요했다. 결론부터 말하자면 의미가 없었다. 더 정확히 말하면 완전히 의미는 없지는 않는건 아니지만 글로 적기에 애매한 거 같다, 올해는 정말 미치는 듯이 놀았다. 적금도 최소한으로 하고.. 놀 수 있으면 놀고 그랬다. 공부는 하지 않고 놀았다. 올해 처음으로 해외여행도 갔다. 비록 혼자가긴 했지만 아무튼 좋았다. 뭐가 좋은지에 대해서는 적지는 않겠지만 아무튼 좋았다. 솔직히 ..
"한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다." 이 책으로 디자인패턴을 공부를 처음 시작했는데 가장 좋았던 점은 어떤 패턴인지 직관적으로 설명하는 것이 가장 좋았습니다. 마치 패턴과 내가 대화를 하는듯한 느낌을 주는 느낌을 받았습니다. 이건 여담인데 제가 회사 면접때 디자인 패턴을 공부한적이 있다고 했고 특정 패턴에 대해 설명한적이 있었습니다. 그때 설명한 패턴이 어뎁터 패턴이었습니다. 저는 그 회사에 합격을 해서 지금도 잘 다니고 있습니다. 이것을 갑자기 말한 이유는 아마 제 합격이 가능한것은 이 책의 지분이 어느정도 있다고 생각합니다. 실제로 입사를 했을때 보다 먼저 구입을 하였습니다. 근데 이 책의 가장 큰 단점이 있었는데 그건 바로 너무 책 표지가 올드하다는 점입니다. 제가 이 책을..
Spring data JPA에서는 많은 확장 기능을 제공하고 있다. 사용자 정의 리포지토리 구현 (잡 글) 일반적으로 Spring data JPA에서는 public interface MemberRepository extends JpaRepository {} 인터페이스를 통해서 JPA를 사용하고 있다. 근데 마이바티스 나 네이티브 쿼리를 사용하는 경우 위 인터페이스는 의미가 없어진다. 왜냐하면, JPA에서 이들을 관리할 수 없기 때문이다. 결국 이들을 사용할때 엔티티와 테이블간의 간극이 발생할 수 있다는 건데 이를 해결하는 방안으로는 강제로 영속성 컨텍스트를 초기화를 시켜줘야 가능하다. 그러면 위 인터페이스를 이용하면 어떨까? 결론부터 말하면 굉장히 비효율적이다. 아까도 말했듯이 마이바티스나 네이티브 쿼리..
페이징 기능 JPA에서 페이징을 할려면, public List findByUsernameAndAgeGraterThen(String username, int age) { return em.createQuery("select m from Member m where m.userName =:username and m.age >:age") .setFirstResult(1) .setMaxResults(10) .getResultList(); } 이런식으로 first와 max를 지정해야 할 수 있다. 코드 상에서는 하드코딩으로 박아두고 있지만, 이것을 밖으로 빼면 될거다. 근데 문제 가 있다. 그건 바로 전체값을 알 수 없다는 점이다. 결국 계산해야 된다는 건데 솔직히 말하면 귀찮다. 이것을 spring data JP..