본문 바로가기

전체 글

(137)
[DevOps] CI/CD, Jenkins에 대한 개념이해하기 개발자로 입사한지 어느덧 6개월차가 되었다.하지만 경력입사자로 3년차 개발자가 되었고 현재 진행중인 프로젝트가 생각보다 시간이 너무 남아 중간중간 비는 시간에 신입사원 교육을 진행하게 되었다. 처음 시작은 CI/CD에 대한 교육이다.Jenkins를 선택한 이유GitLab Runner로 CD만 해봄, Github Actions으로만 CI/CD 해봄한 번도 안해본 Jenkins로 진행하며 토론식으로 교육을 하고자 한다. 제대로 CI/CD 개념을 학습하고자하며 다음과 같은 학습목표를 세우게 되었다.CI/CD 개념에 대해 이해한다.Jenkins에 대해 이해 한다.Jenkins에 대한 기능과 용어를 정리한다.Jenkins를 이용해 CI/CD 파이프라인을 구축한다.배포도구들의 차이점에 대해 정리해본다. 들어가기전 ..
[Intellij] 웹 어플리케이션 배포 패키지 유형, war, war(exploaed) 차이 개요회사 프로젝트 실행은 Spring Applications에서 Main Controller을 실행시키지 않고 따로 Tomcat 서버를 구동시킨다.Tomcat 서버를 Run하는 과정에서 war가 아닌 war(exploaed)로 실행시켜야 하고 이에 대한 차이점도 있는 것을 알게되어 정리하기 위한 게시물이다. 기본빌드(Build) : 소스코드 파일을 실행 가능한 소프트웨어 산출물로 만드는 일련의 과정을 말한다.Maven에서 Artifact : maven build의 결과로 얻을 수 있는 일반적인 .jar나 .war 또는 여타의 실행 파일을 의미한다. 빌드로 생성되는 프로젝트의 결과물이다.배포(Deploy) : 응용 프로그램을 서버 상에서 활용할 수 있도록 구동시키는 것을 의미한다. 실행 가능한 파일을 서버..
정렬(sort) 버블정렬(bubble sort)* 두 인접한 데이터를 비교해서, 앞에 있는 데이터가 뒤에 있는 데이터보다 크면, 자리를 바꾸는 정렬 알고리즘  데이터가 네 개일때 [1,9,3,2]1차 순회1과 9비교, 자리바꿈없음 [1,9,3,2]9와 3비교, 자리바꿈 [1,3,9,2]9와 2비교, 자리바꿈 [1,3,2,9]2차 순회1과 3비교, 자리바꿈 없음 [1,3,2,9]3과 2비교, 자리바꿈 [1,2,3,9]3와 9 비교, 자리바꿈 없음 [1,2,3,9]3차 순회1과 2비교, 자리바꿈 없음 [1,2,3,9]2와 3비교, 자리바꿈 없음 [1,2,3,9]3과 9비교, 자리바꿈 없음 [1,2,3,9] * n개의 리스트가 있는 경우 최대 n-1번의 로직을 적용* 로직을 1번 적용할때마다 가장 큰 숫자가 뒤에서부터 1개씩..
[IntelliJ] java.lang.ClassNotFoundException이 발생한 경우 문제 기존에 계속 스프링 프로젝트를 실행했던 프로젝트였는데 어느순간부터 자바를 jdk를 찾지 못해 main application을 실행하지 못하는 생황이 발생 어플리케이션 실행 시 java.lang.ClassNotFoundException이 오류메시지가 발생했다. 해결방법 1. Edit Configurations을 클릭 2. jdk 제대로 import 되어있는지 확인하거나 다른 jdk를 선택해서 적용해본다.
[ExtJS] ExtJS란, 설치 방법, 기초문법, Theme 종류 ExtJS 란? ExtJS는 Client-Side 기반의 JavaScript Framework 으로 상용 프레임워크입니다. 수백가지가 넘는 강력한 UI 컴포넌트를 지원하며, Classic, Gray, Crisp 등의 여러 테마 또한 지원하고 있습니다. 컴포넌트 제작은 key value 형태를 가진 JSON 구조로 생성됩니다. 예시) 컴포넌트의 일부입니다. ... { xtype : 'panel', border : true, flex : 1, region : 'center' } ... .. 하지만 React, Vue.js, Angular에 비해 상용 프레임워크로 자료들을 구글에서 많이 찾을 수는 없습니다. 공식문서를 참고하여 개발을 하거나 현재 인프런에서 ExtJS 무료 강의가 오픈되어있어 기본기를 쌓을 수..
[Git Error] error: failed to push some refs to "http://github.~" 문제 처음 로컬에서 git init 입력 후 원격으로 git push -uf origin main으로 하려고 했을때 Enumerating objects: 7379, done. Counting objects: 100% (7379/7379), done. Delta compression using up to 8 threads Compressing objects: 100% (5010/5010), done. Writing objects: 100% (7379/7379), 15.01 MiB | 97.88 MiB/s, done. Total 7379 (delta 1593), reused 7379 (delta 1593), pack-reused 0 remote: Resolving deltas: 100% (1593/1593)..
[Ajax] 200 response을 받았지만 ajax fail, error가 발생하는 문제 문제 상황: 로그인 Spring Security + JWT을 이용하여 구현하던 중 Ajax로 응답결과로 "로그인 성공"에 관한 메시지, 토큰값을 받았지만 .error 부분 .fail 메소드가 실행되는 현상이였다. 수정 결과: 응답결과로 dataType을 적어주지 않아서 발생한 문제였다. dataType은 response을 받을때 어떤 타입으로 받을지 지정하는곳이다. ajax 코드에 dataType = "text" 수정해주니 정상적으로 .success .done 메소드가 실행되었다. 문제가 되었던 ajax코드 $.ajax({ type: "POST", url: `/api/user/login`, contentType: "application/json", data: JSON.stringify({userId: u..
[DB] MyBatis vs JPA 백엔드에서 데이터베이스를 사용하는 프레임워크로 가장 많이 쓰이는 기술이 'Mybatis'와 'JPA'입니다. Java 기반의 Spring 또는 SpringBoot에서 데이터베이스를 사용하려면 두 가지 기술 중 하나를 사용해야 하기 때문에 Java 백엔드 개발자는 'Mybatis'와 'JPA'를 반드시 알고 있어야 합니다. 데이터베이스 접속을 편하게 사용하기 위해 SQL Mapper 기술과, ORM(Object Relational Mapping) 기술을 제공합니다. SQL Mapper : '개발자가 작성한 SQL 실행 결과를 객체에 매핑'시켜주는 프레임워크 -> MyBatis ORM : 객체와 DB의 데이터를 '자동으로 매핑'시켜주는 프레임워크 -> JPA(Java Persistence Api) 두가지 기..