전체 글1104 스프링부트 헥사고날 아키텍쳐 코드 구조 스터디 메인 페이지 * 헥사고날 아키텍쳐를 이제 공부 시작해보는거라 틀린 내용이 있을 수 있습니다. 헥사고날 아키텍쳐 스터디를 시작했는데, 책(만들면서 배우는 헥사고날 아키텍처 설계와 구현)의 개념들이 초반부터 좀 어려웠다. 구체적인 코드를 먼저 짜보지 않고 설명만 보면 너무 이해가 더딜 것 같았다. 내 경우에 스프링부트로 프로젝트를 만들 때 사용할 아키텍쳐를 공부해보기 위해 시작한거라 책에서 설명한 헥사고날 구조가 스프링부트에 어떤식으로 적용될지부터 감이 와야 이후 내용을 진행할 수 있을거라 생각했다. 그래서 책의 내용을 보고 예상되는 코드 구조를 한번 짜봤다. 현업에서 현재 헥사고날 아키텍쳐를 적용중인 분께 여쭤보니 다행히 코드 구조 자체는 헥사고날 구조가 맞다고 들어서 만들어본 코드를 기준으로 헥사.. 2023. 2. 17. [자바] 백준 27315 - 틀리는 건 싫으니까 쉬운 문제에 올인하려고 합니다 (java) 문제 : boj27315 필요 알고리즘 개념 그리디, 정렬 보통 그리디가 붙으면 나머지 태그들은 그리디 규칙을 적용시키기 위해 사용된다. 이번에도 마찬가지다! 매번 최선의 문제를 선택해나가면 문제를 풀 수 있고, 최선의 문제를 선택하기 위해 정렬이 필요하다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 우선 T와 E가 주어지지 않는다고 가정하고 생각해보자. 이 경우 간단한데, 매번 HD 이하의 D값을 가진 문제들 중에 P가.. 2023. 2. 17. [이펙티브 자바 정리] 2장 - 객체 생성과 파괴 스터디 메인 페이지 목차 * 책 내용 자체 정리 보다는 제가 각 아이템을 이해한 방식대로 제 생각을 주저리주저리 적는 글 입니다. 따라서 틀린 내용이 있을 수 있습니다. 2장. 객체 생성과 파괴 아이템 1 - 생성자 대신 정적 팩터리 메서드를 고려하라 장점 1 - 이름을 가질 수 있다. 생성자에는 이름을 줄 수 없으므로 실수의 여지가 많다. 또한 생성자에 어떠한 의미를 부여하기도 힘들다. 따라서 정적 팩터리 메소드에 이름을 주면 사용하는 쪽에서도 실수의 여지를 많이 줄일 수 있다. 이하 코드에서 생성자를 통한 생성은 타입 혹은 boolean 처럼 판단 기준을 넘겨줘야 한다. 정적 팩터리 메서드를 사용한게 더 깔끔하고 실수의 여지도 적을 것 같다. new Member("nahwasa", MemberType.. 2023. 2. 17. [자바] 백준 18310 - 안테나 (java) 문제 : boj18310 필요 알고리즘 개념 그리디, 정렬 그리디로 풀 수 있는 문제이다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 처음엔 단순히 평균 구해서 평균과 가장 가까운 집을 선택하면 될 것이라 생각했다. 예제 입력 1도 그렇게 해보니 맞길래 그렇게 하니 당연히 틀렸다. 아래와 같은 경우, 평균으로 구하면 6.8 이므로 가장 가까운건 '6'이다. 그래서 '6'을 골라보면 차이의 합은 14이다. 하지만 실제론 9.. 2023. 2. 16. [수강평] 재고시스템으로 알아보는 동시성이슈 해결방법 - 강의 링크 : 인프런- 강의 보면서 따라해본 깃헙 코드 : github(스프링부트 3.0.2) 금액에 비해 짧다는 수강평들이 보여서 좀 망설였는데 동시성 관련해서 알고싶고, 스터디에서 지나가는 말로 이 강의 얘기가 나왔어서 일단 구매해봤습니다. 결론은 돈 전혀 안아까웠습니다. 짧지만 핵심을 설명해줘서 좋았습니다. 동시성 관련해서 많은 방법을 테스트해보고 차후 장단점에 따라 적절하게 선택할 수 있을 것 같습니다. 이후로 상황에 맞게 어떤 방식을 사용할지 정하고 그걸 더 공부해서 적용하면 멋질 것 같아요. 단점은 글자가 많이 작아요. 노트북으로 보실꺼면 힘드실꺼에요. 2023. 2. 15. [수강평] 더 자바, 애플리케이션을 테스트하는 다양한 방법 - 강의 링크 : 인프런- 강의 보면서 따라해본 깃헙 코드 : github(gradle + 스프링부트 3.0.2) 2019년에 나온 강의다보니 스프링부트 버전이 낮아서 기왕 올릴꺼 스프링부트 3.0.2으로 진행했습니다. 그리고 메이븐은 별로 안좋아하므로 그래들로 진행했습니다. 중간중간 문제가 생기긴 했지만 해결하기 그리 어렵지 않은 문제들이었습니다. 다만 스프링부트 경험이 적다면 백기선님과 동일한 환경으로 세팅하고 보시는걸 추천드립니다. 테스트에 대해 구체적인 예시를 보며 다양한 테스트 방법을 배울 수 있어서 좋았습니다. 섹션 0은 필수로 보시면 될 것 같고, 나머지 섹션들은 다양한 테스트 방법에 해당하니 필요할 때 보는것도 나쁘지 않아 보입니다. ArchUnit 부분은 개인적으로 좋았습니다.. 2023. 2. 15. [자바] 백준 18248 - 제야의 종 (java) 문제 : boj18248 필요 알고리즘 개념 정렬, 그리디 그리디라고 봐야할진 잘 모르겠다. 아무튼 규칙을 찾아 정렬해서 해결할 수 있다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 문제를 이해하기 상당히 어려운 문제였던 것 같다. 결국 중요한건 N명의 사람이 종에서 특정 거리만큼 떨어져 있고, 그 위치가 바뀌지 않는다('타종이 진행되는 동안 사람들은 종소리에 집중하기 위해 움직이지 않는다')는 점이다. 그렇다면 이 문제.. 2023. 2. 15. [자바] 백준 14940 - 쉬운 최단거리 (java) 문제 : boj14940 필요 알고리즘 개념 그래프, 너비 우선 탐색 (BFS) 그래프에 대한 약간의 규칙을 이해할 수 있어야 한다. 그것만 이해하면 그냥 BFS 한방에 해결 가능하다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 모든 지점에서 목표지점까지의 최단 거리는 사실, 목표지점에서 모든 지점으로의 최단 거리와 같다. 사실 간선이 양방향이니 당연한 부분이다. 이것만 알면 그냥 목표지점부터 BFS를 한방 돌려서 모든 .. 2023. 2. 14. [자바] 백준 1448 - 삼각형 만들기 (java) 문제 : boj1448 필요 알고리즘 개념 그리디, 정렬 그리디로 접근해서 풀 수 있다. 수학 삼각형의 세 변을 이루는 규칙을 알아야 풀 수 있다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 삼각형의 세 변을 이루는 규칙만 알면 풀 수 있다. 간단한데, 가장 긴 변이 있을 때 나머지 두 변의 합이 가장 긴 변의 길이보다 커야 한다. 아래 이미지를 보면 이해 가능할 것 같다. 그리고 이 문제에서 원하는건 '삼각형을 만들 수.. 2023. 2. 12. [클린코드] 14~17장 스터디 메인 페이지 목차 - ☆ 표시가 붙은 부분은 스터디 중 나온 얘기 혹은 제 개인적인 생각이나 제가 이해한 방식을 적어놓은 것으로, 책에서 말하고자 하는 바와 다를 수 있습니다. - 모든 이미지의 출처는 클린 코드(로버트 C. 마틴 저) 책 입니다. 14~17장은 코드위주나 기존에 나온 얘기가 많아 딱히 정리해서 적어둘 내용이 없는 것 같아 생각나는 내용 위주로 적었습니다. ⚈ 프로그램을 망치는 가장 좋은 방법 중 하나는 개선이라는 이름 아래 구조를 크게 뒤집는 행위다. ⚈ TDD는 시스템을 망가뜨리는 변경을 허용하지 않는다. 변경을 가한 후에도 시스템이 변경 전과 똑같이 돌아가야 한다. ⚈ 소프트웨어 설계는 분할만 잘해도 품질이 크게 높아진다. ⚈ 그저 돌아가는 코드만으로는 부족하다. 돌아가는 코.. 2023. 2. 11. 이전 1 ··· 28 29 30 31 32 33 34 ··· 111 다음