[Java] 리플렉션(Reflection) 이란 무엇인가요?
·
Develop/Back-End
지난 번 운이 좋아 여러 대기업 면접을 보게 되었는데k사 기술 면접에서자바 리플렉션이라고 물었던 적이 있다..난 당시에 대답을 시원하게 하지 못했다 😓  사실 웹 개발자가 리플렉션을 사용할 일은 드물것이라고 생각이 든다...    그래서 ..  Java Reflection 이란 무엇인가요? 🤔자바 리플렉션은 프로그램이 실행 중일 때 클래스, 메서드, 필드 등을 동적으로 조회하고 조작할 수 있게 해주는 기능이를 통해 런타임에 클래스의 구조를 알아내고, 객체의 메서드를 호출하거나 필드의 값을 수정할 수 있다.자바에서 이미 로딩이 완료된 클래스에서 또 다른 클래스를 동적으로 로딩 (Dynamic Loading)하여 생성자(Constructor), 멤버 필드(Member Variables) 그리고 멤버 메서..
[SpringBoot] 스프링을 이용하여 가벼운(간단한) 스케줄링 작업 처리하는 방법 😁
·
Develop/Back-End
현 시스템을 이용하지 않는 외부 기능이 생겨 데이터 처리 작업을 해야 되는 일이 생겼다. 이전에 작업하였던 스프링배치(배치+쿼츠)와 스프링 스케줄 어떤 걸로 구현할 지 고민하다가데이터 처리할 양이 상당히 적고 (100 Row 미만) 작업이 복잡하지 않아 스케줄러를 이용하기로 결정 😒 * 스케줄러 : 특정한 시간에 등록한 작업을 자동으로 실행 시키는 것을 의미합니다.Spring에서 제공하는 스케줄러로는 Spring Scheduler(종속 추가 x), Spring Quartz(종속 추가 필요)가 있습니다.스프링 스케줄러 사용 방법1. 스케줄링을 활성화 하려면 @EnableScheduling 주석을 메인 Spring Boot 애플리케이션 클래스에 추가하거나 프로젝트에서 만든 구성 클래스에 추가하기만 하면 된..
[Java] 모던 자바(Modern JAVA) 란 무엇인가!!!!😒 (feat. 새롭게 추가된 기능들)
·
Develop/Back-End
"모던 자바(Modern Java)"는 주로 자바 프로그래밍 언어의 최신 기능과 개선된 패러다임을 지칭합니다. 기존의 자바 버전에서 도입된 기능들과는 달리, 자바 8 이후부터의 새로운 기능과 변경된 프로그래밍 스타일을 포함합니다. 모던 자바에서는 함수형 프로그래밍의 개념을 도입하고, 람다 표현식과 스트림 API 등을 통해 코드를 더욱 간결하고 유연하게 작성할 수 있습니다. 또한, 형식 추론(var 키워드), 모듈 시스템, 레코드(Records) 등과 같은 새로운 기능들이 추가되어 프로그래머가 코드를 작성하고 유지보수하는 데 도움이 됩니다. 따라서 모던 자바는 자바 언어를 사용하여 최신의 개발 트렌드와 요구 사항에 부합하는 현대적이고 효율적인 코드를 작성하는 것을 의미합니다. 자바8 이후에 새로운 기능들을..
스프링 배치(Spring Batch) 시작하기 !😭
·
Develop/Back-End
스프링 배치 5가 릴리즈된지 거의 1년이 흘렀는데 이 때는 안보고 있다가.. 😛 급하게 스케줄러와 배치를 이용해야 되는 일이 생겻다 😥 내가 만들어야 할 프로그램 프로세스 흐름은 이와 같다. 프로그램 한 사이클이 돌아가는데 약 2시간 조금 안되게 걸리고 있는 상황인데, ( 마스터 데이터가 늘어날 수록 시간이 곱이 되는 상황) 개발 하고 나서 어느점을 보완해야 되는지 설명 하는게 더 빠를 것 같아서 일단 개발한다.. 배치 was,api was가 버틸수 있을 지 모르겠다.. 스케줄 시간보다 잡이 더 길어질수도 있는 상황.😑 기술적으로 자문을 구할 수 있는 상황이 아니며.. 정책적으로도 풀 수 없는 상황이라 참 난처하다.. 최대한 스케일 아웃으로 풀어야 하는데.. 머리가 너무 아프다 😩 일단 만들어보자 😵 아..
스프링 부트 카카오 로그인 API 기능 추가하기 😳
·
Develop/Back-End
공모전을 진행하면서 카카오 API를 이용하면 가산점이 있었기에 😛 만들고 있는 기능 중 회원가입하는 부분이 있었고 카카오는 많은 사용자들이 이용중인 플랫폼이기에 사용자 측면에서 편의성을 주고자 카카오 로그인 기능을 추가하게 되었다. 당시 api 서버 환경은 jdk 17 spring 6.0.8 spring boot 3.0.6 jpa security oauth2 시큐리티를 사용하고 있으니 oauth2를 이용하여 로그인까지 연결 시키고 싶었는데 이 방법대로는 내가 원하는 대로 흘러가지 않아서 결국에는 api식을로 개발했던 것 같네 지금 코드를 보니 😇 시간이 더 많았으면 스프링 환경을 더 봐서 코드를 깔끔하게 할 수 있었을 것 같은데 조금 아쉬움이 남네 진행상황 1.카카오 디벨로퍼에서 카카오 로그인 프로세스 ..
Spring Boot 환경에서 Appium을 통해 모바일 환경 테스트 하기 + 플러그인 (09.19 수정)
·
Develop/Back-End
추후 모바일 환경을 테스트 하기 위한 appium 서버를 구축하고 java 와 통신하며 app 및 web 을 테스트 하기 위한 환경을 구축 하였다. 아마 웹 개발자들한테는 생소할 수 있는데 모바일 환경 앱 및 웹을 테스트 할 때 주로 쓰인다고 한다. 언어는 Java, Python, Ruby, JS 지원하니 모바일 디바이스 개발을 많이 하시는 분들이라 하면 유용한 테스트 도구 인 것 같다. 😄 * appium (앱이움) : Appium 은 웹 드라이버를 사용하여 Android 또는 iOS 에서 스크립트를 실행하고 기본 애플리케이션, 모바일 웹 애플리케이션 및 하이브리드 애플리케이션을 테스트하기 위한 오픈 소스 자동화 도구입니다. appium 저장소에 이슈 남겼더니.. 해당 개발자가 플러그인을 개발해주었다...
Selenium 을 이용하여 특정 URL 요청과 응답 값 모니터링 하는 기능 만들기
·
Develop/Back-End
이번에 내가 맡게 된 업무는 셀레니움과 jpa를 이용하여 특정 url 요청이 있는 지 확인하고 그 요청으로 인한 응답 값을 모니터링 및 데이터를 적재하는 업무다 😂 사실 이번에 셀레니움을 이용하여 간단하게 개발을 하였지만 아쉬움이 너무 많이 남았다. 셀레니움으로 chrome inspect device를 충분히 조작할 수 있을 것이라고 생각했지만.. 내가 잘 모르는건지 내 생각과 달리 디바이스의 dom이나 script 를 조작하지 못했다.. 😥 그렇지만, 모바일 환경에 테스트 자동 도구에는 어떤 것들이 있는지 알아보게 되었고 다음 같은 상황이 생겼을 때는 더 빠르게 기술을 결정 할 수 있을 것 같다. 🥱 ( ex appium ) * 셀레니움(셀레늄) : 웹 애플리케이션 자동화 및 테스트를 위한 포터블 프레..
타임리프(Thymeleaf) 본격적으로 사용하기 ( +@ 타임리프 벤치마크 성능 비교)
·
Develop/Back-End
타임리프 구문을 잘 모르겠다면 이전에 간단하게 정리해놓은 글이 있으니 먼저 보기 바란다.🤬 (타임리프와 jsp를 고민하고 있는 AA나 PL이 있다면 아래 타임리프 벤치마크 성능 링크도 남겨놓았으니 참고하면 좋을 듯) 아마 JSP에 익숙한 사람은 금방 손에 익을 것 같다. 개인적인 생각으로 자바스크립트로 동적으로 데이터 렌더링 하는 코드를 줄일 수 있으나 예외처리에는 조금 불편함이 있는 것 같다. 이번에 내가 맡게 된 업무는 동영상을 업로드 하여 광고 소재로 내보낼 수 있게 되었으니 해당하는 동영상을 자체적으로 만들거나 또는 수정할 수 있게 이미지를 이용하여 동영상을 만들거나 수정할 수 있는 웹 스튜디오를 만드는 것이였다.🤔 진행상황 서버에서 받은 데이터 조회 및 가공(포맷) 처리 기존 자바스크립트로 데이..