전체 글 183

[시스템 디자인] ID Generator 알아보기 (feat: Twitter Snowflake, tsid)

옛날에는 단순 코드 잘 작성하는 것에 급급하는 주니어 개발자였다면, 현재는 나에게 기회나 설명은 전~~~혀 오지 않지만 시스템 디자인에 자꾸 눈이 가는 주니어 개발자다 물론 결론은 동일하게 주니어 개발자다! 말하고자 하는 내용은 내가 아직도 핫바리 주니어라는 것이 아니라... 지난번에 2023년 인프런에서 개최한 스프링 컨퍼런스에 참여했었는데 같이 참석한 지인과 함께 개인용 학습 프로젝트에 대해 이야기하고 있었는데 T사의 면접에서 uuid 정렬에 관련해서 질문을 받았다고 했다. 처음에 나의 생각은 "uuid를 왜 정렬하지?" create_date를 별도로 넣어서 사용하면 되는거 아닌가? ㅎㅎ 머... 머기업에서 쓰라는데 이유가 있겠지~ ㅋㅋㄹㅃㅃ ^^ 이러한 생각을 가지고 있었다. 그리고 최근들어 시스템..

시스템 디자인 2023.06.03

[디자인 패턴] 2장 - 옵저버 패턴(Observer Pattern) 알아보기

지난 시간에는 디자인 패턴의 필요성과 디자인 원칙에 대해 공부하였다. 지난 내용이 궁금하면 여기 클릭!! 이번 시간에는 옵저버 패턴에 대해 공부할 것이다. 이를 위해 상황 설명, 얻을 수 있는 장점, 그리고 코드로 옵저버 패턴에 대해 이해할 것이다. 참고한 내용은 다음과 같다. https://m.hanbit.co.kr/store/books/book_view.html?p_code=B6113501223 1. 객체와 객체지향? 객체는 실제를 본떠 새로운 세계를 창조하는 것으로, 각각의 객체는 자신의 역할과 책임을 다하고 각자의 역할을 충실한 채로 서로 협력하는 것을 객체 지향이라고 한다. 이 객체란 무엇인가에 대해 인지를 하고 다음 상황 설명을 보고, 음미해보면 더욱 이해가 잘 된다. 2. 상황 설명 우리는 ..

[디자인 패턴] 1장 - 디자인 패턴은 왜 필요할까? + 디자인 원칙

최근들어 필자는 더욱 더 기본에 충실한 개발자가 되기로 하였다. 그래서 다시 디자인 패턴을 공부하기로 했다. 사실 필자는 디자인 패턴 섹션이 있는데, 또 다시 공부하는 이유는 그때는 수준이 낮은 상태에서 공부하려니 기본적인 이해자체가 힘들었다. 보여주기식 공부를 한 것 같다. 다시 글을 보니 내가 보기에 이해가 너무 힘들고 딱딱하다. 고로, 공부를 다시 진행하고, 이를 정확하고 이해가 쉬운 방식으로 정리하기로 결심했다. 이를 진행하면서 참고하는 책은... GoF책은 디자인 패턴의 고전이고 정말 좋은 책이라지만... 2005년 이후로는 이 책이 훨씬 더 많이 팔렷고 부동의 1위라는 것이 헤드퍼스트 디자인패턴의 설명! (아기다리고기다리던책!) 이미 나는 영업당하고 말았다... 하여간 이 책을 기점으로, 학습..

[Java] 배열 - Arrays 정리하기 : 2탄 - copyOfRange, equals, fill, deepEquals

지난 글에서 Arrays와 관련된 메서드들을 정리했다. 지난 내용이 궁금하면 여기 클릭! 이번 글에서는 copyOfRange, equals, fill, deepEquals 의 내부 코드를 살펴보고 사용법에 대해 알아볼 것이다. 참고한 내용은 다음과 같다. https://www.geeksforgeeks.org/equals-and-deepequals-method-to-compare-two-arrays-in-java/ https://yeh35.github.io/blog.github.io/documents/java/java-assert/ 1. Arrays.copyOfRange 지난 글에서 보았던 copyOf와 왠지 비슷할 것 같은 느낌이 든다. copyOf //copyOf @HotSpotIntrinsicCand..

[Java] 배열 - Arrays 정리하기 : 1탄 - copyOf, asList, binarySearch

요즘 필자는 코딩 테스트 책으로 공부하고 있는데, 배열 관련 문제를 푸는데 유용한 Method 를 소개하고 있다. 사실 보면 다 아는것이 대부분인데 이것을 적재적소에 사용할 수 있는지는 별개의 문제이다. 고로, 이번 기회에 Arrays와 관련된 유용한 기능들을 정리하려고 한다. (별로 유용하지 않아도 봐주세요...ㅠㅠ) 참고한 사이트는 다음과 같다. https://www.geeksforgeeks.org/arrays-aslist-method-in-java-with-examples/ https://www.geeksforgeeks.org/system-arraycopy-in-java/ https://coding-factory.tistory.com/548 1. 얕은 복사와 깊은 복사 얕은 복사과 깊은 복사에 대해..

[Oracle (오라클)] PL/SQL - 2 : PACKAGE, FUNCTION 사용법

지난 장에서는 pl/sql을 간단히 소개하고, 사용법을 숙지 및 경험을 통한 장단점을 알아보았다. 지난 내용이 궁금하면 여기 클릭! 이번 장에서는 package와 function의 차이점을 알아보고, 사용법에 대해 알아보고자 한다. 참고한 내용은 다음과 같다. http://www.tcpschool.com/cpp/cpp_function_basic https://www.onlineinterviewquestions.com/what-is-the-difference-between-function/ 1. FUNCTION vs PROCEDURE vs PACKAGE의 차이점 pl/sql은 지난 시간에 봤듯이 단순히 스크립트에서 선언해서 사용하는 것이 아니라 보통 function, procedure, package중 하..

[Oracle (오라클)] PL/SQL - 1 : 소개, 기초 & 커서 사용 및 장단점

최근에 회사에서 pl/sql을 많이 사용하고 있다. 이번 글에서는 pl/sql이란 무엇인지, 그리고 장단점이 무엇인지 간단하게 알아보고자 한다. * 참고한 사이트 및 사진의 출처 - https://ko.wikipedia.org/wiki/PL/SQL - https://www.google.com/imgres?imgurl=https%3A%2F%2Fpbs.twimg.com%2Fprofile_images%2F1558677096611737601%2FHOLFWgAh_400x400.jpg&imgrefurl=https%3A%2F%2Ftwitter.com%2F3_chan_04&tbnid=UknFM8HvJvlxbM&vet=12ahUKEwip0v-_pef8AhWZEKYKHWTKDw0QMygAegUIARDNAQ..i&docid..

[Spring Integeration] 2장 - Spring Integration : 가이드 문서 읽어보기

지난 시간에는 Integration과 관련한 정보에 대해 알아보았다. (★★★ 지난 시간 내용이 궁금하면 여기 클릭! ★★★ ) 사실 이 정보들은 전부 Spring Integeration을 좀 더 잘 이해하기 위한 선행된 공부이기도 했다. 이번 시간에는 Spring Integeration이란 무엇인가에 대해 알아보고자 한다. 참고한 사이트는 다음과 같다. https://spring.io/projects/spring-integration https://stackoverflow.com/questions/2122604/what-is-an-endpoint https://docs.spring.io/spring-integration/reference/html/overview.html https://spring.io..

[Spring Integration] 1장 - Integration, EIP, EAI, ESB 정리

오랜만에 글을 적으려고 한다. (노느라 그런거 아니라능... ㅠㅠ) 최근에 새로운 프로젝트로 투입이 되었는데 절차가 복잡하고 그 기간도 생각보다 길어질 것 같아서 현재 프로젝트에서 무엇을 쓰는지 알아보았는데, Spring Integration을 사용한다고 한다. 그래서 이에 대한 정보를 정리하려고 하는 데... 읽어보니 이거 선행되어야 하는 지식이 좀 있기 때문에(ㅠㅠ...) Spring Integration 학습 세션을 좀 나누어서 학습하려고 한다. 또한, 한국어로 정리된 내용들 중에 좀 더 깊게, 근본적인 이유에 대해 찾아본 사람은 없기에 필자는 좀 더 왜 이게 필요한지 알아보고자 노력했다. 참고 사이트 https://www.enterpriseintegrationpatterns.com/patterns..

[Spring Security] AuthorizationFilter로 HttpServletRequests 인증하기 (Authorize HttpServletRequests with AuthorizationFilter)

지난 시간에는 Spring Security의 인가 구조에 대해 알아보았다. (지난 내용이 궁금하다면 여기 🤦‍♀️🤦‍♀️ 클릭!!) 이번 시간에는 AuthorizationFilter로 HttpServletRequests를 어떻게 인증하는지 알아볼 것이다. 참고한 사이트는 다음과 같다. 출처: https://docs.spring.io/spring-security/reference/servlet/authorization/authorize-http-requests.html Authorize HttpServletRequests with AuthorizationFilter AuthroizationFilter는 FilterSecurityInterceptor를 대체한다. 뒤에 호환이 되게 남기기 위해, FilterS..