본문 바로가기
반응형

전체 글150

short url 인스타로 시간 열심히 녹이던 중, 재밌는 게시물을 봤다. 취업할 때 회사에서 이런 과제테스트를낸다고 하던데…  이걸보고 심심하던 차 한번 구현해보고 싶어졌다.아래에 텍스트로 다시 정리해 보자면 과제 테스트 요구사항(예시)URL bitly과 같은 단축 URL 서비스를 만들어야 합니다.단축된 URL 내의 키(key)는 8글자로 생성되어야 합니다. '단축된 URL의 키'는 ‘https://bit.ly/3onGwak’에서 경로(path)에 해당하는 '3 onGwak'를 의미합니다. bitly에서는 7글자의 키를 사용합니다.키 생성 알고리즘은 자유롭게 구현하시면 됩니다.단축된 URL로 사용자가 요청하면 원래의 URL로 리다이렉트 되어야 합니다.원래의 URL내로 다시 단축 URL을 생성해도 항상 새로운 단축 URL.. 2024. 6. 14.
java - mybatis 사용 (no spring) 검색하다 보면 mybatis 사용하는 예제들은 다 spring에 붙여서 쓰던데,이번에 나는 executable jar로 말아서 사용했어야 해서 (배치작업용)그것에 대해 작성해보려고 한다.lib 폴더에 jar 파일 가져다 놓고 import 하기db 정보, mybatis 설정, mapper 설정하기이제 사용하기순으로 정리 된다. 필요한 라이브러리를 jar를 받아준다.다른 건 필요 없고, 각 DB에 맞는 라이브러리 와 mybatis 라이브러리 두 개를 넣어준다.eclipse 기준으로 프로젝트 우클릭 → Build Path → Libraries → Add jars 해서 두 개의 라이브러리를 추가해 준다. properties를 설정해 준다.spring에 붙여서 쓸 때처럼 properties를 설정해줘야 하는데db.. 2024. 5. 30.
검색창 debounce 처리 지난 글 말미 (검색 자동완성 with mysql function)에 검색창에 검색추천 시 debounce처리를 해야 한다고 적어놨었는데, 그때 처리한 걸 정리하고자 적는다. debounce란? 짧은 시간 여러번 동작하는 걸 막고, 한 번만 실행하게 해주는 방법으로 보통 웹 화면상에 검색창 검색 시 방문자가 타이핑을 끝내고 난 뒤에만 검색 질의(query)에 대한 제안 옵션을 보여주고 싶을 때 사용한다. 이를 통해 불필요한 네트워크 요청을 줄이고, 성능을 향상시킬 수 있다. 저번 글에선 DB function과 해당 함수를 사용하는 view에 질의를 하는 검색창을 하나 만들었었는데, 이때 한글자 타이핑시 ajax → db query 식으로 동작한다. 이걸 줄여보자. javascript에서는 setTimeo.. 2024. 4. 14.
검색 자동완성 with mysql function 블로그 다른 글에서 검색창에서 자동완성을 위한 자료구조를 쓴 적이 있다. trie라는 자료구조를 이용해 단어를 쪼개고(자음까지) tree로 연결연결 시켜서 자동완성을 구현했었더랬다. 브랜드 이름 검색어 자동완성 with Trie 브랜드 이름 검색어 자동완성 with Trie 인터넷을 돌아다니다 글을 하나 보게 됐다. 카테고리 자동완성 개발기 카테고리 자동완성 개발기 안녕하세요. 29CM 발견스쿼드에서 백엔드개발을 담당하고 있는 이동권입니다. 검색페이지에서 hoonzi-text.tistory.com 그치만 이번에 프로젝트하면서 또 다른 방법으로 구현하는 선임을 보면서 해당 방법을 한번 정리해보고자 한다. 네이버 주식을 보면 검색할 수 있는 부분이 있고, 종목코드, 종목명, 종목명의초성, 종목명+초성으로 검.. 2024. 4. 7.
jar 인자 전달을 쉽게! jCommander 이번 프로젝트를 하면서 jar 파일을 만드는 경우가 생겼는데, 해당 jar는 일정 시간마다 한 번씩 실행되는 걸 염두에 두고 구성되었다. 실행하면 DB1 → 데이터 가공 → DB2 순으로 데이터를 밀어 넣는 방식인데 문제는 해당 jar 파일이 실패했을때를 대비해 jar의 실행 설정을 변경하여, 다시 실행시킬 수 있어야 한다는 점이었다. 우리가 흔히 보는 java의 main 함수는 jar로 만들어 실행 시 파라미터를 args로 받을 수 있다. // $java -jar test.jar date time flag public static void main(String[] args){ // args 로 실행 파라미터를 입력받을 수 있다! String date = args[0]; String time = args.. 2024. 4. 6.
mysql order by equal? mysql order by column 시 column value가 같을 경우, sort 순서는 보장되지 않는다. (결과값이 달라질 수 있다.) 왜? 쉽게 생각해서 table에 저장된 row순으로 출력 되지 않을까 싶은데, 실제로는 table의 row는 disk에 순서대로 저장되지 않고, insert, delete, update 를 거치면서 물리적으로 저장된 순서가 바뀔 수 있고, 그것보다는 order by 사용시 index를 사용하지 못하는 경우, filesort 알고리즘을 이용하게 되는데 해당 알고리즘은 정렬 수행 시 메모리에 임시 테이블을 만들거나, 너무 커서 메모리에 저장 못하면, 메모리가 아닌 디스크에 쓴 뒤 (일부 sort → merge) 반복 동작이 수행되는데, merge 작업 시 순서가 보.. 2023. 12. 5.
등수 반환 문제 고찰 Q. 성적이 입력되고 그 학생의 등수를 출력하는 함수를 작성하시오. 점수는 0~100이고, 점수는 랜덤으로 들어온다. rank 함수는 20억 회 이하로 동작된다.(대충 이런 내용) 전역변수, 클래스 등 자율적으로 사용해도 무관. 시간과 메모리 등을 고려하여 작성 ex. 1번째: Score: 70 -> return 1 2번째: Score: 100 -> return 1 3번째: Score: 80 -> return 2 4번째: Score: 70 -> return 4 5번째: Score: 50 -> return 5 문제 출처 : https://okky.kr/articles/1052166 문제 해결을 위한 rank 계산 코드 짜기 version 1. 첫번째 접근 → 단순히 리스트에 넣고, 정렬하고, 해당 숫자 찾.. 2023. 10. 20.
maven multi binding 문제 시 해결 회사에서 옛날에 만든 걸 리팩토링해보려다가 maven 옮겨오는 것부터 문제가 생겼다. spring 키려고 하니 자꾸 맨앞에 아래와 같은 오류가 생겼는데 해석하자면 " slf4j binding 하려고 보니 동일한 모듈이 여러 개라서 그중에 멀 쓸지 모르겠다. 내 맘대로 하나 쓴다? " 에러 메세지 이긴 한데 동작하는데 문제없지 않을까 싶다가도 글씨가 빨간색이니 이번 기회에 고치는 방법 알고가자 싶어서 정리하는 겸 적어본다. 우선 pom.xml 파일을 보면 dependency로 추가한 것 중 꼬인 게 분명 있다. 하지만 어떤 패키지가 뭘 가지고 있는지 어떻게 아냐? maven 설정이니 maven을 설치해준다. ( maven 설치 - ref. https://benggri.tistory.com/23) cmd창에.. 2023. 10. 12.
springboot 대댓글 게시판 구현하기 (수정 기능x, 삭제 기능x) 대댓글 게시판 구현하기 (수정, 삭제 기능 x, 회원 존재 x) 프로젝트 폴더 및 파일 구성 대댓글을 구현하기 앞서 기본적인 게시판을 구현해야 한다. 기본 게시판 구현 게시물 목록 게시물 상세 보기 게시물 작성하기 게시물이 작성되어 저장하기 위한 table 구성 (mysql 기준) * ip를 넣어놓은 이유는 익명일 때는 구분을 위해 IPv4 뒤 두 자리를 넣어놓던데… 사실 필요 없을 듯하다 seq 값은 게시물의 pk 값 게시물은 제목(title)과 내용(content)을 가지고 있고, 그 게시물을 쓴 주체(user)에 대해 표시되어야 하기에 title, content, user가 존재 작성 시간(createAt)도 표시 mysql create sql CREATE TABLE `post` ( `seq` bi.. 2023. 8. 7.
반응형