java
-
Java: Arrays.fill()과 Arrays.setAll()의 차이Java 2022. 7. 12. 13:54
Java: Arrays.fill()과 Arrays.setAll()의 차이 이 글은 Arrays.fill()'과 'Arrays.setAll()의 공통점, 그리고 기억해둘 만한 차이점에 대해 이야기합니다. 공통점 둘 다 배열을 위한 유틸 메서드입니다. 특정한 값으로 초기화 하고 싶을 때 사용할 수 있습니다. 그러니까 예를 들어 이런 코드를 작성하고 싶을 때 사용할 수 있어요. for (int i = 0; i < arr.length; i++) { arr[i] = initialValue; // can be a String, an int, an some Object... } 그런데 이런 코드를 볼 때면 항상 '좀 더 간결하게 할 수 없을까?'란 생각을 하게 되죠. 그 때 사용할 수 있..
-
Java: JDBC API 기본 개념 이해각종 학습 요약/Java 2022. 6. 30. 13:46
JDBC API 기본 개념 이해 이 글은 JDBC가 무엇인지 알아보고 사용되는 과정에서 일어나는 일들을 살펴보는 글입니다. JDBC란? JDBC API는 Java 어플리케이션에서 데이터베이스와 연결하여 자원을 사용할 수 있도록 해주는 표준 API입니다. 어플리케이션 코드가 DB 벤더(Mysql, oracle, PostgreSQL 등...)에 종속되지 않도록 인터페이스 역할을 하고 있습니다. 벤더에 따라 JDBC 구현체가 존재하고, 어플리케이션 개발자는 이를 이용해서 다양한 벤더의 데이터베이스에 접근할 수 있습니다. JDBC 연결 과정 몇 가지 단계가 있긴 한데 아주 단순합니다. JDBC 드라이버를 로드해서 데이터베이스와 연결할 준비를 하고요. 준비를 했으니 연결합니다. 커넥션(Connection)을 얻어..
-
모각코PS / 백준 2110 공유기 설치PS 2022. 6. 22. 15:01
모각코 PS스터디 지난주 알고리즘 스터디 내용 중 대표적인 한 문제를 정리해보려고 합니다. 늘 그렇듯 문제는 알고리즘 대장님께서 선정해주셨습니다.😃 문제와 풀이 문제 링크 : 백준 2110번 - 공유기 설치 👇펼쳐서 코드와 해설 읽기 진짜 할 말이 많은데... 일단 넋두리 & 이분탐색 tip은 마무리로 넘겨두고... 로직의 흐름 부터 보시죠. 로직의 흐름은 이렇습니다. 표본 수가 매우 큽니다. 대강 눈으로만 봐도 판단 횟수가 10억 * 20만이니까, 그리디로는 택도 없습니다. logN의 시간 복잡도로, 대강 열댓번 정도의 탐색으로 끝내야할 것 같습니다. 이를 위해 이분탐색으로 풀 것입니다. 정확히는 파라메트릭 서치를 적용할 거에요. 지금 궁금한 건 거리죠. 최소 거리와 최대 거리를 탐색 범위로 두면 됩니..
-
Java: 오류Error와 예외Exception, Unchecked와 CheckedJava 2022. 6. 17. 17:44
Java: 오류Error와 예외Exception, Unchecked와 Checked 이 글에서는... 오류와 예외를 구분해 설명하고, Unchecked Exception과 Checked Exception을 구분지어 설명해봅니다. 예외의 적절한 처리를 알아봅니다. 일단, 오류Error와 예외Exception 오류와 예외 메시지를 받아주는 Throwable 밑에는 두 클래스가 존재합니다. Error와 Exception이죠. Java API Docs에서는 이렇게 설명하고 있습니다. Error : (파파고 번역) 오류는 적절한 응용 프로그램이 탐지하려고 해서는 안 되는 심각한 문제를 나타내는 폐기 가능한 하위 클래스입니다. 이러한 오류는 대부분 비정상적인 상태입니다. 스레드 데스 오류는 "정상" 상태이긴 하지만..
-
Web Server와 WAS란? 그리고 ServletJava/Java Web 기술 2022. 6. 14. 16:07
Web Server와 WAS란? 그리고 Servlet 웹서버와 웹애플리케이션서버의 역할과 차이를 알아봅니다. 웹 환경이 어떤 식으로 응용애플리케이션을 제공하는지, Apache/Java 진영을 예로 들어 설명합니다. Web Server와 WAS 특징을 최대한 간략하게 요약해볼게요. Web Server 오래된 역사. 정적 리소스(html, image, css, js...) 전달이 주 목적. WAS 상대적으로 최근. 이름으로 보아 알 수 있듯 어플리케이션을 실행할 수 있음. 따라서 동적인 리소스를 제공하는 것이 가능. 그런데 최근 추세는... Web Server도 동적 리소스 제공을 지원하기도 하고, WAS도 리소스를 서빙하기도 하는 등, Web Server와 WAS의 경계가 모호해지고 있습니다. 하지만 WA..
-
모각코PS / 프로그래머스 Lv3 단어 변환 & Leetcode 127 Word LadderPS 2022. 6. 11. 17:23
모각코 PS스터디 그래프 탐색 세 번째 문제인 '단어 변환'입니다. 이 문제는 Leetcode 127번 Word Ladder 문제와 완전히 동일해요. 단어들이 배열로 주어지는데 곧바로 그래프가 떠오른다면...? 어느 정도 그래프 탐색 카테고리의 문제에 익숙해졌다고 봐도 되는 거겠죠?😇 그것만 빨리 캐치한다면 특별히 어려운 점은 없습니다. 아, BFS 탐색의 레벨을 세는 꿀팁이 있으니까, 그 부분이 필요하시다면 참고하세요! 그럼 문제 풀이로 들어가보죠! 문제와 풀이 문제 링크 : 프로그래머스 Lv3 - 단어 변환 문제 링크 : LeetCode Hard - Word Ladder 👇펼쳐서 코드와 해설 읽기 왜 단어를 보고 그래프를 연상할 수 있을까요? 문제의 제약조건은 사실상 이런 말로 해석이 ..
-
모각코PS / 백준 2178 미로 탐색PS 2022. 6. 11. 16:32
모각코 PS스터디 그래프 탐색 두 번째 문제인 '미로 탐색'입니다. 문제의 제약조건을 보면서 어떤 알고리즘으로 접근하면 좋을지 힌트를 얻을 수 있기도 하죠? 표본 수가 적고, 시간 제한이나 메모리가 상대적으로 넉넉하고, 좌표나 맵 같은 것이 주어지면 그래프가 떠오르는 것 같습니다. 그리고 각 탐색로의 길이를 비교하거나, 특히 가장 빠른 탐색 경로를 찾아야 하는 경우에는 BFS를 선택하는 편이 '대개' 유리하겠죠. 모든 경로를 다 들어가보고 길이를 기록해뒀다가 제일 짧은 길이를 리턴하는 것보다, 모든 경로를 동시에 진행하다가 한 경로가 끝에 다다르면 나머지를 더이상 탐색하지 않고 리턴하는게, 탐색 횟수가 훨씬 적을 거니까요. 이번 문제가 그런 스타일의 문제였습니다. 문제와 풀이..
-
모각코PS / 백준 1260 DFS와 BFSPS 2022. 6. 11. 16:08
모각코 PS스터디 지난주는 너무 바빠서 PS스터디 포스팅을 못 올렸네요. 백트래킹이었는데, 나중에라도 시간이 나면 올려보려고 합니다. 이번주 5주차 PS스터디 문제 주제는 그래프 탐색이었습니다. 세 문제 모두 DFS/BFS 문제였어요. 한 문제 씩 보면서 그래프 탐색에 대한 공부 방법, 주의점, 그리고 잡담 같은걸 좀 해볼게요. 그래프 탐색 문제는 흔히 '템플릿'이라고 하는 코딩스타일이 존재하죠. 조금만 구글링 해봐도 수두룩해요. 물론 제 블로그에도 있고요 ㅋㅋ. 그걸 보고 바로 원리를 이해할 수 있다면 좋겠지만 이해가 안된다면, 템플릿을 외워서라도 문제를 풀어보면서 익숙해지는 것도 좋은 방법 같습니다. 푸는데에 성공했다면 IDE로 옮겨서 디버깅을 실행해두고 한 스텝씩 따라가며 공부하는 거..