백엔드 관련 13

[CI/CD] 그래서 CICD 가 뭐야~?

안녕하세요 오랫만에 돌아온 jju_developer입니다. 요즘 이직한 회사에서 교육을 듣다 보면 계속 CICD 말이 나오곤 하는데...! 뭔지는 알겠는데 그래서 아주 쉽게 CICD 가 뭐라구~?를 정리해보겠습니다. CI는 지속적 통합(Continuous Integration)을 의미 > CI를 구현하기 위해서는 Jenkins, Travis CI, CircleCI와 같은 도구를 사용할 수 있습니다. 정의: 개발자가 코드를 자주 (보통 하루에 여러 번) 중앙 저장소에 통합하는 프로세스입니다. CD는 지속적 배포(Continuous Deployment) >CD를 구현하기 위해서는 Jenkins, GitLab CI/CD, AWS CodePipeline과 같은 도구를 사용할 수 있습니다 정의: CI의 결과로 생..

백엔드 관련 2024.09.21

[웹 로딩 속도 개선해보기] 2. 자바와 JSP 단에서 뭔가 개선할 수 있는 방법이 있을까?

안녕하세요~ 지난시간에 이어서!웹 로딩속도 개선 해보기 초급반! 시작하겠습니다.우선 기본적인 이미지 같은 파일을 압축하는 방식은 사용을 해봤다면, 자바 또는 JSP 에서는 과연 어떤것을 해야 할까요..? 1. 서버측의 성능 최적화2. JSP의 웹 로딩속도 개선 도대체 서버측의 성능화가 그래서 뭐냐...?!1. 서버 사이드 최적화1.1. 데이터베이스 쿼리 최적화쿼리 성능 개선: 데이터베이스 쿼리를 최적화하여 성능을 향상시킬 수 있습니다. 복잡한 쿼리를 단순화하고, 인덱스를 활용하여 데이터 검색을 빠르게 합니다.> 지난 회사에서 데이터베이스의 인덱스 거는 작업을 해봤었죠!> 복잡한 쿼리 단순화라,,,말은 참 쉽네요 ^^;;캐싱 사용: 자주 조회되는 데이터를 캐시하여 데이터베이스 조회를 줄입니다. 예를 들어,..

백엔드 관련 2024.09.11

[웹 로딩 속도 개선해보기] 1. 이미지 파일 최적화

안녕하세요~ 오늘도 퇴근 후 돌아온 jju_developer입니다. 이번에 반도체 관련 회사에 웹 플래폼 개발자로 이직을 하게 되었는데요, 역시나 제가 관심이 많은 부분은 웹 사이트 관련된 개선 사항이지 않을까 생각이 됩니다. 초급 개발자로써 웹사이트 로딩 시간 단축을 위해 생각해 보아야 할것이 무엇이 있을까요? 우선 페이지에 들어가는 사이즈가 큰것들을 생각해보면 보통 > 왼쪽 상단의 로고 메뉴들의 로고들을 제일 먼저 생각해볼 수 있습니다. 처음 딱 든 생각은 이미지가 대부분 크기가 크면 웹사이트 로딩 시간도 어느정도 관련이 있겠다 말이죠! 제가 이렇게 웹 로딩 속도에 관심이 많은 이유는 바로...! 고객의 불만 혹은 웹사이트 방문객이 5초만 되도 참지 않고 사이트를 꺼버리기 때문입니다~~~~ (저도 그..

백엔드 관련 2024.09.11

[VSCode] 깃에 http clone 주소가 있을 때 코드를 한번 열어보자 초급반

git의 http 주소가 이미 나에게 있다고 가정해보겠습니다. 1. VSCode 열기: 먼저 Visual Studio Code를 열어주세요.  2. 터미널 열기:원하는 폴더에서 VSCode 상단 메뉴에서 Terminal을 클릭한 후, New Terminal을 선택하여 터미널을 엽니다. 또는 Ctrl + ` (백틱) 키를 눌러서 터미널을 열 수 있습니다.3. 클론 URL 넣기 : git clone 주소입력4. 프로젝트 폴더로 이동:클론한 저장소가 생성된 폴더로 이동합니다. 예를 들어, 폴더 이름이 repository라면 아래 명령어를 사용합니다:cd repository5. 폴더 열어주기:  VSCode 상단 메뉴에서 File을 클릭한 후, Open Folder를 선택합니다. (또는 Ctrl + K, Ct..

백엔드 관련 2024.09.10

[java 오류 찾기] Logger 선언 & Actuator

안녕하세요 jju_developer입니다. 디버깅을 할 때 System.out.println 대신 로그를 사용하는 이유가 무엇일까요?Java와 Spring Boot에서의 로깅과 관련된 내용을 중점적으로 다뤄보겠습니다! 또한, 로그를 대체할 수 있는 방법까지 알아봅시다.우선 log를 왜 찍을까요?초반에 간편히 sout (System.out...) 해서 그냥 프린트로 찍어서 테스트를 했었지만, 서버 운영할 때 다 빌드 해놓고 어디서 오류가 났는지 확인하기 어려운 경우가 있었습니다. 그럴 때 내 소스코드를 까서 볼 수는 없으니까 로그를 기록해서 putty로 접속해서 해당 로그를 다운로드해서 본다면 적어도 어디서 오류가 났는지 혹은 어디까지 코드가 탔는지를 쉽게 볼 수 있겠죠? 이처럼 로그는 애플리케이션의 행동..

백엔드 관련 2024.08.16

[java] GOOGLE OTP 서비스 도입 초기 설정하기

안녕하세요~ 퇴근하고 돌아온  jju_developer입니다. 기존에 구글 otp를 사용하는 이유에 대해서 설명을 드렸습니다.  [java] GOOGLE OTP란? 구글 인증 서비스 도입 방법 (One-Time Password)안녕하세요 jju_developer 입니다~ 오늘도 어김없이 퇴근하고 돌아왔습니다. 오늘은 행운의 메일이 딱~ 날라오면서,,,! 정보 보안은 OTP 로 적용이 가능할 것. 이라는 조건이 날라오게 되었습니다.jju240.tistory.com 추가 보안을 해야한다는 프로젝트가 있어서해당 프로젝트를 위해 공부를 해본 소스코드를 공유드리겠습니다.1. LoginController.javaLoginController 클래스는 OTP 생성을 위한 요청을 처리하고, 사용자로부터 입력받은 OTP를..

백엔드 관련 2024.08.01

[jar] 자르 파일 인터넷에서 다운받고 dependency 추가 할 때

1. 온라인에서 필요한 jar 파일을 다운받습니다.   2. 해당 자르 파일을 프로젝트에 삽입해줍니다.   3. 해당 jar 파일을 프로젝트에 추가해줍니다.ctrl + alt + shift + s 해당 자르파일의 경로를 선택하여 ok를 눌러줍니다. apply > ok 하고 메이븐 클린 후 소스 다운로드를 진행합니다.  4. 다시 프로젝트에서 > 표기가 생겼음을 확인합니다.   > 를 눌러주면meta-inf 안의 maven 안에 pom.properties가 나옵니다.  5. pom.properties의 정보 확인하여 dependency에  추가하면 됩니다. 여기에 버전이랑 groupId랑 artifactID 가 있습니다. 이것을 그대로 pom.xml에 추가하는 정보로 쓰면 됩니다!  6. pom.xml에 ..

백엔드 관련 2024.07.17

[java] GOOGLE OTP란? 구글 인증 서비스 도입 방법 (One-Time Password)

안녕하세요 jju_developer 입니다~ 오늘도 어김없이 퇴근하고 돌아왔습니다. 오늘은 행운의 메일이 딱~ 날라오면서,,,! 정보 보안은 OTP 로 적용이 가능할 것. 이라는 조건이 날라오게 되었습니다. 이에 이번시간에는 간단히 구글 otp가 무엇이고 어디에 쓰는지에 대해 알아보고자 합니다~ 저는 예전 인사팀에서 근무할때에 로그인 인증을 구글 otp로 했었습니다. 모바일 폰에 구글 otp 라는 어플을 깔고로그인을 할때마다 구글 otp에 뜨는 번호를 로그인 창에 입력하는 방식이였습니다. 이것을 제가 개발을 해야하는 날이 오다니... 참 기분이 묘한 오늘입니다. 아무튼 정확히 OTP 가 무엇인지 찾아보았습니다!OTP (One-Time Password) 정의와 사용 방법**OTP (One-Time Pass..

백엔드 관련 2024.07.16

JSONObject["data"] is not a string 스프링부트 자바 오류

안녕하세요 jju_developer입니다. 어김없이 퇴근 후 돌아왔습니다. 오늘은 코딩하다보면 쉽게 나타나는 오류에 대해 적어보려고 합니다~ 바로바로  Method threw 'org.json.JSONException' exception JSONException이 발생한 이유는 바로 !! jsonObject.getJSONObject("data")를 호출했을 때 data가 문자열로 인식된다는 것입니다. 하지만 data는 실제로 JSONObject이기 때문에문제를 해결하려면 올바른 데이터 유형으로 접근해야 합니다. 우선 코드를 간단히 말씀드리자면  public void sendUserMessage(List getUserDeviceInfoList, Rtls getSafetyManagerInfo         ..

백엔드 관련 2024.06.14

@PostConstruct 의존성 주입 완료 후 초기화 작업!!

안녕하세요~ jju_developer입니다. 오늘도 퇴근후 돌아왔습니다!하루 하루 오늘도 열심히 살아봅시다이번에는 스프링 부트 @PostConstruct 에 대해서 기록을 해보고자 합니다. 이번에 스프링 부트로 프로젝트를 하면서 @PostConstruct 를 써봤습니다.자바로 구현하는 Spring에서 @PostConstruct 애노테이션은 InitializingBean 인터페이스의 afterPropertiesSet 메서드와 유사한 역할을 한다고 합니다. 우리가 기본적으로 클래스를 생성하고해당 클래스에서 어떤 동작을 실행하도록 만들었습니다. 예를들면,public class JJUConverter { private List aaa ; private Map aaaMap; public aaaCo..

백엔드 관련 2024.06.13