본문 바로가기

Develop

(28)
스프링 부트 카카오 로그인 API 기능 추가하기 😳 공모전을 진행하면서 카카오 API를 이용하면 가산점이 있었기에 😛 만들고 있는 기능 중 회원가입하는 부분이 있었고 카카오는 많은 사용자들이 이용중인 플랫폼이기에 사용자 측면에서 편의성을 주고자 카카오 로그인 기능을 추가하게 되었다. 당시 api 서버 환경은 jdk 17 spring 6.0.8 spring boot 3.0.6 jpa security oauth2 시큐리티를 사용하고 있으니 oauth2를 이용하여 로그인까지 연결 시키고 싶었는데 이 방법대로는 내가 원하는 대로 흘러가지 않아서 결국에는 api식을로 개발했던 것 같네 지금 코드를 보니 😇 시간이 더 많았으면 스프링 환경을 더 봐서 코드를 깔끔하게 할 수 있었을 것 같은데 조금 아쉬움이 남네 진행상황 1.카카오 디벨로퍼에서 카카오 로그인 프로세스 ..
Spring Boot 환경에서 Appium을 통해 모바일 환경 테스트 하기 + 플러그인 (09.19 수정) 추후 모바일 환경을 테스트 하기 위한 appium 서버를 구축하고 java 와 통신하며 app 및 web 을 테스트 하기 위한 환경을 구축 하였다. 아마 웹 개발자들한테는 생소할 수 있는데 모바일 환경 앱 및 웹을 테스트 할 때 주로 쓰인다고 한다. 언어는 Java, Python, Ruby, JS 지원하니 모바일 디바이스 개발을 많이 하시는 분들이라 하면 유용한 테스트 도구 인 것 같다. 😄 * appium (앱이움) : Appium 은 웹 드라이버를 사용하여 Android 또는 iOS 에서 스크립트를 실행하고 기본 애플리케이션, 모바일 웹 애플리케이션 및 하이브리드 애플리케이션을 테스트하기 위한 오픈 소스 자동화 도구입니다. appium 저장소에 이슈 남겼더니.. 해당 개발자가 플러그인을 개발해주었다...
Selenium 을 이용하여 특정 URL 요청과 응답 값 모니터링 하는 기능 만들기 이번에 내가 맡게 된 업무는 셀레니움과 jpa를 이용하여 특정 url 요청이 있는 지 확인하고 그 요청으로 인한 응답 값을 모니터링 및 데이터를 적재하는 업무다 😂 사실 이번에 셀레니움을 이용하여 간단하게 개발을 하였지만 아쉬움이 너무 많이 남았다. 셀레니움으로 chrome inspect device를 충분히 조작할 수 있을 것이라고 생각했지만.. 내가 잘 모르는건지 내 생각과 달리 디바이스의 dom이나 script 를 조작하지 못했다.. 😥 그렇지만, 모바일 환경에 테스트 자동 도구에는 어떤 것들이 있는지 알아보게 되었고 다음 같은 상황이 생겼을 때는 더 빠르게 기술을 결정 할 수 있을 것 같다. 🥱 ( ex appium ) * 셀레니움(셀레늄) : 웹 애플리케이션 자동화 및 테스트를 위한 포터블 프레..
타임리프(Thymeleaf) 본격적으로 사용하기 ( +@ 타임리프 벤치마크 성능 비교) 타임리프 구문을 잘 모르겠다면 이전에 간단하게 정리해놓은 글이 있으니 먼저 보기 바란다.🤬 (타임리프와 jsp를 고민하고 있는 AA나 PL이 있다면 아래 타임리프 벤치마크 성능 링크도 남겨놓았으니 참고하면 좋을 듯) 아마 JSP에 익숙한 사람은 금방 손에 익을 것 같다. 개인적인 생각으로 자바스크립트로 동적으로 데이터 렌더링 하는 코드를 줄일 수 있으나 예외처리에는 조금 불편함이 있는 것 같다. 이번에 내가 맡게 된 업무는 동영상을 업로드 하여 광고 소재로 내보낼 수 있게 되었으니 해당하는 동영상을 자체적으로 만들거나 또는 수정할 수 있게 이미지를 이용하여 동영상을 만들거나 수정할 수 있는 웹 스튜디오를 만드는 것이였다.🤔 진행상황 서버에서 받은 데이터 조회 및 가공(포맷) 처리 기존 자바스크립트로 데이..
JAVA 에서 FFMPEG를 통한 영상 정보 읽기 및 영상 인코딩(압축) 처리 도전기 이번에 내가 맡게 된 업무는 배너 이미지(소재) 만 등록 되던 기능에 운영중인 서비스 환경에 동영상 업로드 및 압축 기능을 추가하는거였다. 개발을 잘 모르는 사람들은 "아니 이미 파일 업로드 기능이 있는데? 그냥 기존에 업로드 하던 부분 조금만 손보면 되는거 아니야?" 이렇게 말을 할 수도 있지만 개발은 운영중인 서비스에 어떤 기능을 도입하는게 해당 기능을 새로 만드는 것보다 어렵다.. 🤨 그러니 운영 중인 서비스에 어느 기능을 넣을 땐 최대한 많이 검토하는 습관을 길러야한다!! 제일 힘들었던건 ffmpeg가 국내에 정보가 많이 없는 것 같다. 🤬 그래서 따라하기 좋은 예제를 github 이슈에 모아놓았다.. github 링크는 아래 레퍼런스에 남김 :) FFmpeg FFmpeg는 오디오와 비디오를 다루..
타임리프(Thymeleaf) 사용 방법 및 문법 정리 들어가기 전 🔥 지금 있는 회사는 view 템플릿 엔진으로 thymeleaf 를 사용하고 있기에 간단하게 정리하여 글을 남긴다. "아니 나는 백엔드 개발자인데 ?" "이거 몰라도 되는 거 아니야?" 🤦‍♂️ 그런 안일한 생각은 하지 말자 물론 회사가 어느 정도 규모냐에 따라 체계적으로 맡은 언어가 명확하게 구분 지어 질 수도 있지만 열에 일곱은아닐 것이다 🥺 이건 내 개인적인 생각이지만 리액트(react.js)나 뷰(vue.js)도 프론트 개발자 또는 퍼블리셔와 원활한 커뮤니케이션을 위해 사이드 프로젝트로 해보는 것을 권장한다. (전에 스타트업에 잠깐 있었을 때 많은 도움이 되었다 특히 퍼블리셔와 소통하는 부분에서 🤪 나는 백엔드 개발자지만 당시 스타트업에 프론트 개발자가 채용 되지 않아 내가 리액트 즉..
[Java] 스트림(Stream) API 사용 방법 / 외부반복 내부반복 차이점 Java 개발자라면 한번쯤 Stream API 에 대해서 들어보게 될 텐데 회사 *코드 컨벤션에 따라 익숙한 개발자들도 있을 것이고 사용을 아예 안하는 개발자도 많을 것 같은데🤪 나도 자바에선 자주 사용하지 않아 손에 익진 않았는데 사용하면서 퍼포먼스 측면에서도 나아지고 코드도 훨씬 간결해진듯... 😛 * 코드 컨벤션 (Code Convention) : 읽고 관리하기 쉬운 코드를 작성하기 위한 일종의 코딩 스타일 규약(하나의 작성 표준) 스트림이 무엇인지 간단하게 특징과 사용 방법을 블로그에 정리해보려고 해 😏 스트림 API는 자바 8부터 추가된 기능이야. 이걸 쓰면 컬렉션 처리가 훨씬 쉬워지고 성능도 높아져. 반복문을 직접 안 써도 되니까 코드도 간결해지고 가독성도 좋아져. 스트림은 데이터 처리를 파이..
dropzone.js 를 이용하여 동영상 업로드 미리보기 및 썸네일 기능 구현기 이번에 내가 맡게 된 업무는 dropzone.js 를 이용하여 동영상 업로드와 미리보기 및 썸네일 기능을 만드는 것이였다. 요즘들어 부쩍 스크립트 만질 일이 많아졌는데 BE 코드를 다루지 못하고 있어서 아쉬움이 많다... 😭 업무 진행 당시 dropzone.js version : 5.5.0 진행상황 동영상 업로드 , 동영상 특정 구간 썸네일 추출 , 미리보기 기능 구현 완료! 😎 이슈 & 고민 및 해결 배너배리에이션 기능을 만들었던 이미지 등록하는 화면에서 당시에는 발견하지 못했던 버그들도 발견하면서 수정하고 dropzone.js 오픈 소스 라이브러리 코어 스크립트를 조금 수정하였다. 😂 이 업무를 진행하면서 이슈나 고민 거리는 없었던 것 같다 🤗 [지난 배너 배레이이션 작업 이후 체크 못한 결함 사항 ..