분류 전체보기 76

HTTP Query Parameter에서 Arrary List 사용

API 설계할 때, GET을 사용하여 서버의 정보를 조회하고 싶은데, 범위가 필요한 값들이 있다. Query Paramter에 Array도 가능하고 Json Type도 쓸 수 있다는 것을 모른다면 POST 메소드를 사용하여 Body 메지시에 범위 값을 사용하는 걸로 설계할 수 있다. 예를 들면, POST /bell/v2/list HTTP/1.1 ... { "list":[0, 5] } 물론 이 방식도 할 수 있다. 근데 Resource URI를 더 고민해야하는;; 상황에 놓이게 된다 GET에도 body 메시지를 물론 보낼 수 있다. 근데 GET 메소드에 대해서는 body를 처리하지 않는 서버가 있을 수 있기 때문에 통상적인? 표현은 아닌 듯 하다. 그래서 아래와 같이 보내면 간단히 해결된다. GET /be..

📖 Java&Spring 2023.02.01

Spring Cron Expression

크론 표현식은 Spring에서 특정 시간 마다 반복되는 작업을 수행하고 싶을 때 사용하는 표현식 입니다 스케줄러는 DB 작업이나 반복되는 작업 등등에서 많이 쓰이는데용, Spring의 cron을 이용해서 시간 주기를 설정할 수가 있답니다. 🌱 servlet-context.xml 파일에 task namespace 추가하기 servlet-context.xml에 task namespace를 추가한 모습 입니다 task:scheduled-tasks로 시작해주고, ref에는 스케줄이 동작될 클래스를 작성해주면 됩니다. ref에는 bean을 등록해주는 것이라서, @Component, @Controller 등의 Annotation으로 등록된 이름을 추가 method에는 실행될 메서드를 입력해주면 됩니다 🌱 cron ..

📖 Java&Spring 2023.01.25

Intellij HTTP Client Plugins

요즘 Intellij의 편리함과 기능에 빠져서 이것저것 테스트를 해보고 있습니다 🙂 순수 shell 말고 vscode도 배척 했었는데.. 좋은게 있으면 씁시다. 남들이 좋다고 하는데는 이유가 있습니다. HTTP Client Plugin으로웹 서비스를 개발할 때 ~ 개발 후 서비스 ~기능 검증 하기 전에 사용할 수 있답니다. 저는 다른 서비스 테스트할 때는 Postman이랑 Insomnia로 했었는데, 이 기능으로도 테스트 해보고 더 편한 걸로 작업하려고 합니다 https://www.jetbrains.com/help/idea/http-client-in-product-code-editor.html#composing-http-requests HTTP Client | IntelliJ IDEA www.jetbra..

StringUtils

StringUtils 📕API 문서 StringUtils는 문자열을 검사할 때나 변환할 때 유용하게 쓰이는 클래스 입니다 1) Class java.lang.Object org.apache.commons.lang3.StringUtils2) 특징 NullPointException 발생 X ThreadSafe 🌱 String Handling String 처리 클래스 답게 처리할 수 있는 단어들이 있는데용, 아래와 같습니다. null: 말 그대로 null empty: 빈 문자 ("') space: 스페이스 ('', char 형) whitespace: 여백, Character.isWhitespace(char를 참고) trim 🌱 Operations 이 때 아니면 언제 다 읽어보겠습니까? 😥 💡기본적으로 null-..

📖 Java&Spring 2023.01.18

Looking For Annotation~

Annotation Annotation 자체는 주석이라는 뜻입니다. C++/C 다루다가 Java 코드를 봤을 때 가장 재밌게 본 문법이었습니다. 작성자 이름이나 배포 날짜만 적는줄 알았던 주석이...! 다르게 보였기 때문인데요, 특징을 간단히 정리해보겠습니다 💫 Annotation 특징 AOP(Aspect Oriented Programming)을 편리하게 구성해주는 주석 기능 컴파일러에게 코드의 문법 에러를 체크할 때 쓰는 정보를 제공 개발 환경 빌드/배포 시 코드를 자동 생성하도록 정보 제공 런타임에 어떤 기능을 실행하도록 정보를 제공 Annotation 정리 (계속 업데이트 예정) 1) @Override 메소드를 Override 할 것이니 컴파일러에게 알려줍니다 상속 받은 부모 클래쓰/인터페이스가 없..

📖 Java&Spring 2023.01.16

Intellij) Junit Test Code 작성 시 "Execution failed for task" 해결 방법

평화로운 오후.. 이제 Java 마스터가 되어야 하는 C쟁이는 Test Code를 작성하려 했는데용 시작하자마자 난관에 부딪히고 말았는데요 Execution failed for task ':test'. > No tests found for given includes: ... * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. ⬆️ 이런 에러를 만났습니다 JUnit Test Code Build를 하기 위한 Gradle에 있는 설정을 바꿔줘야했답니다 File>Settings>Build..

📖 Java&Spring 2023.01.09

Docker MariaDB container 실행 방법

🙂 mariaDB login 🚛 mariadb 로그인 방법 (docker mariadb 에서 실행) mysql -u root -p 🚛 database 변환 MariaDB [mysql]> use {사용할 DB 이름름} Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed 🙂 docker mariadb image 🚛 docker image 중지실행 방법 docker stop {mariadb image 이름} docker restart {mariadb image 이름} 🚛 docker에서 실행 중인 im..

DevOps 2022.11.30

Boost로 시간 값 사용해보기

Boost로 시간 값 사용해보기 개발을 하다보면, 로그라던가 HTTP 요청을 받았을 때라던가 현재 시간을 정보를 남길 때가 종종 있습니다. 저는 C언어에서는 아래와 같이 현재 시간을 남기고 있습니다 long get_current_msec(void) { long cur_msec = 0; struct timeval tv_time; gettimeofday(&tv_time, 0); cur_msec = (long)(tv_time.tv_sec*1000) + (long)(tv_time.tv_usec/1000); return cur_msec; } Boost에서는 시간을 가져오는 라이브러리가 역시 존재합니다 (물론 위 코드를 사용해서 C++ 코드에 적용해도 괜찮습니다 😊 ) Boost의 Posix Time 소개글에는 아..

📖 C랑 C++ 2022.11.29

Boost::program_options 사용기

오늘은 아침부터 일이 잘 되지 않는다 머리가 잘 안 돌아가서 막막한 느낌 ㅠ.,ㅜ 그래서~~ 기분 전환 용으로 글 하나 쌈박하게 올리고 다시 열일 해보겠다 이전에 작성한 boost 관련 글에도 썼다시피 나는 boost에 많은 고마움을 느낀다 +_+ 엥 이게 있다고? 하는 라이브러리가 많기 때문 이번에 시뮬레이터를 작성할 게 있어서 C로 하려다가 C++로 하려는데 세상에.. Boost에는 program options라는 기능을 제공해서 argument 기능을 참 쉽게 만들 수 있게 해 놓았다 1. 긴 서론 우리가 어떤 프로그램을 실행할 때, 옵션을 추가하여 실행을 해본 경험이 있을 것이다 argument를 프로세스 실행 파일 뒤에 추가해서 사용하곤 하는데 $ gcc --help Usage: gcc [opt..

📖 C랑 C++ 2022.07.26

Wireshar filter & Date format 바꾸기

월요병을 극복하고자 글을 하나 짧게 올릴려고 한다.. 요즘 현업이 너무 바빠서 블로그에 임시저장 한 글만 다섯개인듯 언제 정리해서 올리지 그래서 소소하게 짧은 글만 후딱 올리고 다시 일하러 가려고 한다 오늘의 팁은 Wireshark 간단 사용법이랑 시간 형식 바꾸기이다 1. Wireshark란? 학교 다닐 때는 왜 이걸 쓰는가,, 하고 과제할 때만 썼었는데 이렇게 유용하고 고마운 프로그램이 없다 특히 bit 단위나 로그로 남기기 힘든 내용을 상세하게 보고 싶을 때 정말 많이 쓴다 와이어샤크는 패킷 분석 프로그램이다 네트워크 상에서의 문제/분석/프로토콜 등등을 개발하거나 교육할 때 쓰는 오픈 소스 프로그램이다 원래 이름은 Ethereal이었는데 상표 문제로 이름을 바꿨다고 한다 (출처: 위키백과) 크로스 ..