본문 바로가기

전체 글1068

[수강평] 외워서 끝내는 네트워크 핵심이론 - 기초 - 강의 링크 : 인프런 강의 제목이 '외워서 끝내는' 이지만 '이해시켜서 끝내게 해주는' 으로 바꿔도 될 것 같다. 외우는건 잘 못해서 강의 제목만 보고 내심 걱정이었는데 직접 그려주시고, 전체적인 흐름을 잘 짚어주셔서 오히려 기써서 외워지 않아도 머리에 박힌 것 같다. 이게 이해지 뭐! 뭔가 부분부분적으론 알고 있던 내용들이 잘 정리된 느낌이다. 강의가 깊게 들어가진 않지만, 스스로 깊게 들어갈 수 있는 충분한 이정표가 된 것 같다. 개인적으로 강의 초반에 OSI 7계층 세세한 요소들 알려고 덤비는 순간 '우정, 사랑' 이런 철학적인 내용을 공부하는 것 같이 되서 포기하게 된다는 내용이 와닿았다. C언어 배우다가 포인터에서 다들 한번쯤 막히는 것 처럼 거기서 확실히 막막했어서 오히려 전체적인 흐름을 .. 2023. 2. 19.
[자바] 백준 25178 - 두라무리 휴지 (java) 문제 : boj25178 필요 알고리즘 개념 구현, 문자열 문제에 제시된대로 코드를 짤 수 있는 구현력(?)만 있으면 풀 수 있다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 문제에서 제시된 '조건'을 모두 파악할 수 있게 짜주면 된다. 이 때 두 문자열을 각각 a와 b라고 부르겠다. 조건을 하나씩 생각해보자. 1. 한 단어를 재배열해 다른 단어를 만들 수 있어야 한다. a와 b 내부에 있는 각 소문자의 갯수가 동일하면 .. 2023. 2. 18.
인텔리제이 코드창 usage, usages 힌트 제거 (remove intellij usage hints) 2023-02-18 내용 추가 : 삭제 대신 여러줄만 안되게 우측으로 보내기! (맨 아래쪽) 몇달 전(얼마 안됨) 인텔리제이 업뎃을 하면서 코드내에 usage, usages 힌트가 추가되었었다. 물론 좋은 기능이긴 하지만, 개인적으로 매번 보이면서 한줄씩 잡아먹는 것 처럼 보이니깐 오히려 코드 짜는데 방해된다. 어차피 알고 싶으면 Alt+F7을 눌러주면 나온다. 그러니 저걸 제거해보자. 방법은 간단하긴 한데 찾긴 어려웠다. 영어가 딸리기도 하고, 최근에 추가된거라 검색해도 딱히 나오지가 않았다. usage 자체도 이미 기능들이 있던터라 다른 기능으로 검색될때가 많았다. 그래서 그냥 settings에서 usage로 검색해서 나오는걸 확인해보면서 찾았다. 아무튼 결론은 file -> settings -> E.. 2023. 2. 18.
스프링부트 헥사고날 아키텍쳐 코드 구조 스터디 메인 페이지 * 헥사고날 아키텍쳐를 이제 공부 시작해보는거라 틀린 내용이 있을 수 있습니다. 헥사고날 아키텍쳐 스터디를 시작했는데, 책(만들면서 배우는 헥사고날 아키텍처 설계와 구현)의 개념들이 초반부터 좀 어려웠다. 구체적인 코드를 먼저 짜보지 않고 설명만 보면 너무 이해가 더딜 것 같았다. 내 경우에 스프링부트로 프로젝트를 만들 때 사용할 아키텍쳐를 공부해보기 위해 시작한거라 책에서 설명한 헥사고날 구조가 스프링부트에 어떤식으로 적용될지부터 감이 와야 이후 내용을 진행할 수 있을거라 생각했다. 그래서 책의 내용을 보고 예상되는 코드 구조를 한번 짜봤다. 현업에서 현재 헥사고날 아키텍쳐를 적용중인 분께 여쭤보니 다행히 코드 구조 자체는 헥사고날 구조가 맞다고 들어서 만들어본 코드를 기준으로 헥사.. 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.