본문 바로가기
반응형

Java27

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.
검색 자동완성 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.
maven multi binding 문제 시 해결 회사에서 옛날에 만든 걸 리팩토링해보려다가 maven 옮겨오는 것부터 문제가 생겼다. spring 키려고 하니 자꾸 맨앞에 아래와 같은 오류가 생겼는데 해석하자면 " slf4j binding 하려고 보니 동일한 모듈이 여러 개라서 그중에 멀 쓸지 모르겠다. 내 맘대로 하나 쓴다? " 에러 메세지 이긴 한데 동작하는데 문제없지 않을까 싶다가도 글씨가 빨간색이니 이번 기회에 고치는 방법 알고가자 싶어서 정리하는 겸 적어본다. 우선 pom.xml 파일을 보면 dependency로 추가한 것 중 꼬인 게 분명 있다. 하지만 어떤 패키지가 뭘 가지고 있는지 어떻게 아냐? maven 설정이니 maven을 설치해준다. ( maven 설치 - ref. https://benggri.tistory.com/23) cmd창에.. 2023. 10. 12.
변수 메모리 할당 (간단 정리) 메모리 할당 프로그램이 실행되어 메모리에 올라갈때는 해당 프로그램이 사용가능한 메모리 영역을 os로 부터 할당 받는다. 할당 받은 메모리는 크게 4부분으로 나뉜다. 데이터 영역 코드 영역 스택 영역 힙 영역 데이터 영역 상수 값, 정적 변수, 글로벌 변수 등이 할당, 선언된다. 프로그램의 실행과 함께 메모리위에 올라가고, 종료와 함께 메모리에서 해제된다. 그렇기 때문에 정적 변수에 메모리가 큰 값을 할당하는 걸 조심해야 한다. 코드 영역 프로그램의 코드(명령어)가 저장된 공간이다. 해당 명령어를 통해 프로그램의 실행이 제어 된다. 스택 영역 함수 실행시 해당 영역에 필요한 메모리가 할당된다. 함수 내 지역변수, 매개변수, 함수 리턴값 등이 메모리 위에 올라간다. 함수 종료시 해당 영역은 해제되며 재귀 함.. 2023. 7. 31.
FK-FK table springboot @ID 매핑 토이 프로젝트 만들다가 막혀서 비슷하게 한번 만들어본 상황. 요구사항 사용자가 메뉴를 보고 주문을 한다. 메뉴들이 여러 개 있고, 주문 내용에는 메뉴”들” 정보와 요구사항이 포함되어 있을 때 테이블로 위 요구사항을 저장하려면? 뭐… 정답은 없겠지만 내가 구성한 건 아래와 같다. orderInfo 테이블은 주문정보를 저장하는 테이블이다. 사용자의 요구사항을 저장하는 orderDesc 컬럼과 등록시각을 저장하는 regDate 컬럼이 존재한다. item 테이블은 메뉴 정보를 저장하는 테이블이다. 메뉴 이름을 저장하는 name 컬럼과 가격을 저장하는 price 컬럼, 등록시각을 저장하는 regDate컬럼이 존재한다. orderItem은 주문 정보에 포함되는 메뉴들을 저장하는 테이블이다. 주문 정보는 여러 개 저.. 2023. 6. 21.
spring boot login 중복 로그인 방지 저번 spring boot의 기본 로그인을 구현했다. spring boot 로그인 (+spring security, mysql) spring boot 로그인 (+spring security, mysql) springSecurity 사용 pom.xml 에 아래와 같이 security 설정 추가 org.springframework.boot spring-boot-starter-security {프로젝트이름}Application.java 가 존재하는 폴더에 config folder 생성 + securityConfig.java 생성 demo.config.Se hoonzi-text.tistory.com 이전 로그인 코드에 중복 로그인 방지를 추가해보자. 중복 로그인 방지 로직을 넣기 위해 기본 로그인 페이지가 아닌.. 2023. 5. 28.
excel hyper link 삽입시 주의 사항 (# -> %23 이 될때) 이번에 자바로 엑셀에 값을 넣고 생성하면서 문제가 생긴 부분이 생겼고, 해결하는 과정을 적어보고자 한다. 기존에 엑셀에 외부링크를 넣을 때 (정확히는 인터넷 페이지 주소, url) 아래와 같이 코드를 짰었고, 문제가 없었다. String link = ""; HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet("sheet1"); HSSFRow row = null; HSSFCell cell = null; row = sheet.createRow(0); cell = sheet.createCell(0); cell.setCellValue(link); Hyperlink link_article = workbook.getCr.. 2023. 4. 2.
반응형