전체 글

수바리의 코딩일기

    [MySql] 숫자/문자 자리수 맞추기 (LPAD, RPAD)

    날짜의 경우, 주로 고정된 자리수로 표기하게 된다. 한자리 숫자인 경우 앞에 0이 붙어야한다. 예를 들어 2-28로 표기하지 않고, 02-28과 같이 표기하는 것을 sql을 이용해보면 LPAD('값', '2', '0') # 값, 자리수, 빈값에 넣을 문자 LPAD는 자리수를 맞추고, 남은자리에 3번째 파라미터의 값을 채워넣게된다. SELECT LPAD(2, '2', '0'); # result: '02' SELECT LPAD(1, '5', '0'); # result: '00001' LPAD는 왼쪽이라면, RPAD는 값의 오른쪽에 자리수를 맞춰서 문자를 넣는다. SELECT RPAD(1, '2', '0'); # result: '10' SELECT RPAD(100, '5', '0'); # result: '10..

    [MySql] GROUP BY 내부 정렬하기

    [MySql] GROUP BY 내부 정렬하기

    각 그룹내에서 랜덤한 행, 또는 특정조건으로 정렬을 해야하는 경우 나는 seedIdx컬럼으로 GROUP BY를 하고, 그룹내에서 stage를 랜덤하게 추출하고 싶다. SELECT * FROM PlantImg; 아주 단순하게 생각해서, 정렬(ORDER BY)과 그룹화(GROUP BY)를 동시에 해보면 SELECT idx, seedIdx, stage FROM PlantImg GROUP BY seedIdx ORDER BY RAND(); 이렇게 GROUP BY가 먼저 수행되기때문에 그루핑된 행들이 정렬되게 된다. 그래서 stage는 내부에서 정렬이 되지 않고 모두 각 그룹의 첫번째 행인 stage=1이 나오게 되었다. 해결방법 SELECT seedIdx, (SELECT stage FROM PlantImg WHE..

    [Spring Boot][Firebase] FCM설정 시, Messaging: We are unable to register the default service worker. Failed to register a ServiceWorker for scope ~

    [Spring Boot][Firebase] FCM설정 시, Messaging: We are unable to register the default service worker. Failed to register a ServiceWorker for scope ~

    바쁘신 분들을 위한 해결책 요약 firebase-message-sw.js 경로 확인 -> resources/static 경로에 있어야합니다!!!! https적용 여부, 나는 http://localhost에서도 1번 해결책만으로 위 오류는 없어졌지만, https에서만 된다고는 하니, 안된다면 시도해보길! 이슈 음~ 아까 생긴 오류 해결한지 30분도 안되서 오류 하나 추가요... 너무 좋다~~🙃🙃 FCM테스트 하려고 하는데 Messaging: We are unable to register the default service worker. Failed to register a ServiceWorker for scope ~ 검색해보니 http에서 이런에러가 난다길래, https적용된 도메인에 올려서 다시 테스트..

    [Spring Boot] Restful API 404 Found, html 출력

    [Spring Boot] Restful API 404 Found, html 출력

    이슈 최근에, Spring Boot를 initializr부터 직접사용해서 프로젝트를 만들어보고 있는데, 단순한 테스트용 Get API부터 호출이 안되고 404 Not Found가 떴다. 분명 제대로 만들 것 같은데...왜그런가해서 검색을 해보니 패키지 기본 경로 ex) com.demo.example 이 아래에 Controller및 Application 파일이 있지 않으면 찾지 못해서라고 한다. 하지만 나는 기본 경로 아래에 잘 작성한 것 같다고 생각되었다. 문제 & 해결 계속 Controller에서 이 경로로 못들어오는 줄 알았는데, 혹시나해서 프린트를 찍어봤더니 "hi"는 출력이 된다! 그럼 return "test"가 제대로 동작하지 않아서 Not found가 뜬다는 것이다. 현재 "test"에 노란줄..

    ubuntu에 Jenkins설치, E: Package 'jenkins' has no installation candidate

    ubuntu에 Jenkins설치, E: Package 'jenkins' has no installation candidate

    Issue ubuntu에 jenkins를 설치하려했는데, 바로 Error 발생 $ sudo apt-get install jenkins E: Package 'jenkins' has no installation candidate 문제 jenkins key가 변경되어서 위와 같은 에러가 뜰 수 있다고 한다! 해결 wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add - sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > \ /etc/apt/sources.list.d/jenkins.list' sudo apt-get update sudo apt-get insta..

    Restful API란 무엇인가?

    이 또한 면접에서 질문받았던 내용인데, 이전에는 정말 잘 알고있다고 생각했는데 막상 질문을 받았을 때 Rest한 API가 되기 위한 규칙 외에 진짜 Restful API가 무엇인지에 대해 명확한 답변을 하지 못한 아쉬움에 다시 한번 정리해보고자 한다. RESTful API란? REST는 "Representational State Transfer"의 약자이다. REST API는 REST 아키텍처의 제약 조건을 준수하는 애플리케이션 프로그래밍 인터페이스이다. 자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미한다. 클라이언트, 서버 및 리소스로 구성되었으며 요청이 HTTP를 통해 관리되는 클라이언트-서버 아키텍처 데이터가 요청되어지는 시점에서 자원의 상태(정보)를 전..

    [JUnit] assertThat deprecated

    Test코드를 작성하던 중에, assertThat에 빨간줄이 떠서, 아래와 같이 import했더니 assertThat은 deprecated되었다고 뜬다. import org.junit.Assert.*; 해결 import static org.assertj.core.api.AssertionsForClassTypes.assertThat; assertj를 import한 뒤, assertThat을 사용할 수 있다!

    [Spring Boot][Gradle] 실행 시 Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. 에러

    [Spring Boot][Gradle] 실행 시 Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. 에러

    문제 Spring Initializr을 이용하여 프로젝트 생성 후, 추가설정 없이 바로 실행했더니 Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2021-09-06 16:31:50.532 ERROR 20275 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPLICATION FAILED TO START *************************** Description: Failed to configure a DataSource: 'url' att..

    [Datagrip] Test Connection 시, Server returns invalid timezone. Need to set 'serverTimezone' property. 에러

    [Datagrip] Test Connection 시, Server returns invalid timezone. Need to set 'serverTimezone' property. 에러

    문제 localhost에 mysql세팅한 뒤, Datagrip으로 접속하려니 Test Connection에서 Server returns invalid timezone. Need to set 'serverTimezone' property. 이런 에러가 발생했다. 처음보는 에러였는데, 나는 새로 구축한 mysql이 문제인 줄 알고 재설치까지 할...뻔! 했지만 다행히 mysql 문제는 아니었고, Datagrip timezone문제였다.. ^-^ 해결방법 Test Connection을 수행하던 화면에서 상단을 보면 Advanced가 있다. Advanced에서 serverTimezone을 Asia/Seoul로 설정해주면 해결! 바로 General로 돌아가서 Test Connection 해보면, 빠르게 반영되어 ..

    쿠키(Cookie), 세션(Session)이란?

    쿠키(Cookie), 세션(Session)이란?

    쿠키, 세션의 차이점은? 이라는 질문을 기술면접 2번동안, 2번 다 물어보셨었다. 쿠키는 브라우저에 저장되고, 세션은 서버에서 관리한다... 이정도로만 대답을 했었는데 뭔가 시원한 대답은 아니었다..ㅠㅠ 어중간하게 알고있던 것들을 제대로 알기위해 앞으로 기술면접에서 받았던 질문들 위주로 공부해서 포스팅해볼 예정이다! 쿠키, 세션을 사용하는 이유 HTTP의 대표적인 특징 중 하나가 Stateless하다는 것이다. 예를들면, 로그인을 했을 때 다른 페이지로 이동을 하게되면 상태가 유지되지 않기 때문에 사용자가 로그인을 했는지, 누구인지를 다시 잊어버리게 된다. 그래서 이런 상태값을 저장함으로써 사용자의 현재 상태값을 쿠키, 세션의 차이점은? 둘다 Stateful한 경우를 위해 사용되는데, 차이점은 저장위치라..