본문 바로가기
728x90
반응형

전체 글250

startsWith, endsWith 무조건 좋은가 java에는 A라는 문자열의 맨앞에 B라는 문자열이 prefix(접두사)로 있는지 체크하는 함수인 startsWith가 있습니다.또한 A라는 문자열의 맨 뒤에 B라는 문자열이 suffix(접미사)로 있는지 체크하는 함수인 endsWith가 있습니다.여기서 하나의 궁금증이 생깁니다."문자열 : 문자열" 비교가 아닌 "문자열 : 문자" 비교인 경우에 startsWith나 endsWith보다 charAt()가 더 좋지 않을까?라는 의문을 가지고 테스트에 들어갔습니다.테스트 소스public class Main { static String s = ""; static int size = 1000000000; public static void main(String[] args) { Sys.. 2024. 8. 17.
SW 개발자 취업&이직 정보 공유 카페 https://cafe.naver.com/workhub SW 개발자 취업&이직 정보 공유 카페 : 네이버 카페SW 개발자 취업 & 이직 정보를 공유하는 곳 입니다.cafe.naver.com취준생분들의 취업을 위하여 만든 오픈카카오톡의 취준방을 운영중이신 안산학생님이 만든 카페입니다.스터디 모집, 데일리 인증 등 여러가지 개발관련 활동 및 모집을 할 수 있습니다. "[임스] 알고리즘 문제 추천" 게시판에는 제가 알고리즘 문제를 풀면서 취준생분들에게 추천할만한 문제들을 올리고 있습니다. 2024. 8. 13.
Service에서 Argument 사용하기 Spring boot의 main을 통해 argument를 입력받는 경우가 발생할 수 있습니다.public class Main { public static void main(String[] args){ SpringApplication.run(SpringBootBoilerPlateApplication.class, args); }}이럴 경우 args를 입력받고 시작하는데, 해당 args를 활용하는 함수를 필요로 하는 경우가 발생합니다. public class Main { public static void main(String[] args){ // args를 필요로 하는 경우 SpringApplication.run(SpringBootBoilerPlateApplication.class,.. 2024. 8. 7.
Spring boot에서의 logback 설정 Spring boot에서는 logback위치를 java-resource의 위치에 있는 logback.xml 위치를 보고 log 위치를 지정합니다. 그러나 이렇게 진행하는 경우 ${LOG_PATH}와 같은 변수가 들어가 있는 경우, 이를 인식하지 못하는 현상이 발생합니다.물론 이런식으로 logback.xml의 옵션으로 LOG_PATH를 지정할 수 있습니다. 그렇지만, 만약에 LOG_PATH를 특정 파일의 값으로 읽어와 지정하는 경우에는 해당 방식을 사용할 수 없습니다.그래서 다음과 같은 방식으로 LOG_PATH에 대한 값을 소스코드로 입력할 수 있습니다.LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();logger.. 2024. 8. 5.
[JDK 15] Text Blocks JAVA 공식 문서를 한글로 번역한 내용에 대하여 작성하였습니다.JDK15에서 String 관련 새로운 기능이 추가되었습니다.해당 기능은 JDK12에서 처음으로 등장했지만 릴리즈되지 않았고, JDK13, JDK14에서 미리볼 수 있는 방법으로 등장했었습니다.이후 JDK15를 통해 릴리즈가 되었습니다.목표여러 줄의 소스 코드에 걸쳐 있는 문자열을 쉽게 표현할 수 있도록 함JAVA 프로그램의 문자열 가독성 향상문자열 리터럴과 동일한 방식으로 조작도리 수 있도록 규정하여 문자열 리터럴에서의 마이그레이션을 지원동기부여JAVA에서 HTML, XML, SQL 또는 JSON의 스니펫 문자열 리터럴에 임베드하려면 일반적으로 스니펫이 포함된 코드가 컴파일되기 전에 이스케이프 및 연결을 사용하여 상당한 편집이 사용됩니다... 2024. 8. 4.
ShiftOr 알고리즘 이번 시간에는 ShiftOr이라는 근사 문자열 매칭 알고리즘에 대하여 이야기해보고자 합니다. unix 계열의 agreap이라는 명령어에서 사용하고 있습니다.https://en.wikipedia.org/wiki/Agrep agrep - WikipediaFrom Wikipedia, the free encyclopedia agrep (approximate grep) is an open-source approximate string matching program, developed by Udi Manber and Sun Wu between 1988 and 1991,[1] for use with the Unix operating system. It was later ported to OS/2, DOS, anden.. 2024. 7. 28.
Two-Way String-Matching에 대하여 오늘은 KMP 방식과 Boyer-Moore의 방식을 조합하여 양방향으로 탐색하는 Two-Way String Matching Algorithm에 대하여 알아보도록 하겠습니다. python 3.10에서 적용한 이후 약 25배가량의 엄청난 효과를 보았다고 알려진 알고리즘 입니다.C의 strstr의 하위 문자열 함수를 구현하는데에도 사용되어져 있습니다. 찾고자 하는 문자열이 앞에 있는 경우개수 / 문자열 길이 / 패턴 길이kmp(s)boyer-moore (s)rabin-karp (s)two-way String Macthing (s)100,000 / 2,000 / 107.926154.06316.30524.87610,000 / 5,000 / 100.96616.5241.7982.69 찾고자 하는 문자열이 뒤에 있는 .. 2024. 7. 21.
rabin-karp 이번에는 hashing을 활용한 문자열 매칭 알고리즘인 라빈-카프(rabin-karp)에 대해 알아보고자 합니다.  라빈-카프 알고리즘의 시간복잡도는 O(N)으로 지금까지 진행하였던 왠만한 문자열 매칭 알고리즘보다 빠르다는 장점이 있습니다.그치만, 여러 가지 다양한 부분에서 문제점이 있어 실제 서비스에서는 사용하기 어렵다는 단점이 있습니다. 장점 - 시간이 빠르다단점 - hashing 값이 충돌이 날 수 있다. - overflow가 발생할 수 있다. "abbaba"라는 문자열에 "aba"라는 문자가 포함되어 있는지 확인하는 방법을 예시로 들어보겠습니다.hashing을 사용하기 때문에, 자리수마다의 문자의 아스키 코드 넘버에 특정 값을 곱하여 하나의 숫자 단위로 표현합니다.2를 활용하여 예시를 들면 pat.. 2024. 7. 11.
예외 처리 방법 Spring boot를 사용하시면, 다음과 같은 방법들로 api 요청을 보냅니다.@PostMapping({"/api"})@GetMapping({"/get/api"})만약 다음과 같이 요청이 가능한 api가 있을 때, 없는 api를 요청할 경우, 500에러를 발생하게 됩니다. 해당 에러에 대하여 특정 반환값 or 페이지를 출력하기 위해선 500 에러를 잡아서 다른 response를 보내야 합니다.@ControllerAdvicepublic class GlobalExceptionHandler { @ExceptionHandler(HttpMessageNotReadableException.class) public ResponseEntity handleHttpMessageNotReadableExceptio.. 2024. 7. 7.
728x90
반응형