분류 전체보기 41

What is 'CI/CD'?(CI/CD란?)

Application을 개발, 유지보수하는 과정에서 반복되는 '빌드 및 테스트' 과정과 'update된 application 배포' 과정까지를 지속적으로 수행한다는 의미를 가진 CI/CD란 정확히 어떤 의미일까요? CI(Continuous Integration) CI는 지속적 통합을 의미합니다. 아마 '통합'이라는 단어에서 의미를 유추하실 수 있듯이, 하나의 프로젝트에 대하여 여러 개발자들에 의해 변경 사항들이 발생했을 때, 이들을 '빌드 및 테스트' 과정을 거쳐 공유 레퍼지토리에 통합시키는 것을 의미합니다. 위 그림에서 왼쪽에 해당하는 부분이 CI 작업에 해당합니다. (Code 수정-> Build -> Test) 예를 들어, 형상관리(Version Control Revision Control)툴에 공유..

IT Background 2022.06.29

[ERROR Solution] Rest API 활용 중 생긴 에러(MissingServletRequestParameterException)

MissingServletRequestParameterException: Required String parameter 'pName' is not present ajax를 활용하여 form데이터를 DB에 저장하는 데 생긴 문제이다. | DB(데이터 구조) 우선 DB에 product라는 테이블이 있다. 사진과 같이 4개의 컬럼이 있다. 하지만 no(primary key)는 auto_increment로 데이터가 insert 될 때마다 자동으로 다음 값이 들어간다. 위의 이유로 화면의 form 양식에서는 pName, pPrice, pDesc 만을 입력받는다. @PostMapping("/") public Map insert(@RequestBody Product product) { Map resultMap = n..

Back-End 2021.10.30

[ERROR Solution] 프로퍼티를 찾지 못했을 때(PropertyNotFoundException)

javax.el.PropertyNotFoundException: Property '. . .' not found on type . . . 위 에러는 ${person.name} 와 같이 EL구문을 사용하는 과정에서 name 에 해당하는 프로퍼티를 찾지 못한 경우이다. el구문을 사용하기 위해서는 dto를 자바빈즈 규약에 맞게 만들어야 하는데, Person dto의 멤버변수인 name이 1. Name으로 앞에 대문자가 오는 경우 2. nAme처럼 두 번째에 대문자가 오는 경우 두 경우에서는 에러가 발생한다. 1번 경우 통상적으로 getter와 setter는 get / set + (앞 글자를 대문자로 바꾼 멤버변수 명)으로 이루어지는데, name 같은 경우의 getter는 getName()이 될 것이다. 그리..

카테고리 없음 2021.10.23

[ERROR Solution] No mapping for GET

WARN : org.springframework.web.servlet.PageNotFound - No mapping for GET /root/ 404에러(Page Not Found)의 원인이 되는 에러로, 나같은 경우는 project root 뒤에 / 로 GET Mappig되는 경로를 찾을 수 없는 것이다. 다른 이름으로 RequestMapping 해놓은 경로들이 있었는데, 막상 가장 첫 페이지를 띄우는 /를 처리하는 컨트롤러가 없어 index 페이지부터 안떠버린 것었다. 💡이후 MainController 생성 후 문제 해결 No mapping for GET 에러가 발생하면 요정하는 경로에 Mapping되는 컨트롤러가 있는지 먼저 확인하자

Back-End 2021.10.21

[Spring Framework]스프링 프레임워크란(Spring Framework)?

| EJB(Enterprise JavaBeans) EJB(Enterprise JavaBeans)란, 기업환경의 시스템을 구현하기 위한 서버 측 컴포넌트 모델이다. 즉 엔터프라이즈급 어플리케이션의 개발을 단순화하는 자바 표준인 것이다. EJB가 생겨난 취지는 비즈니스 객체들을 관리하는 컨테이너를 두어 필요 시에 컨테이너로부터 객체를 받는 식으로 관리하기 위함이다. (동시접속자수가 10,000이상으로 많이 필요한 공공기관, 금융, 포털사이트에서 집중적으로 사용한다고 한다) 하지만, EJB를 사용하기 위해서 다양한 설정들을 필수적으로 해야하며, 코드가 특정 환경에 종속된다는 단점이 있다. 따라서 여러 회사마다 EJB 컨테이너를 구성한 설정이 달라 서로 호환이 어려웠고, 프로젝트가 특정 기술이나 환경에 종속된다..

Back-End 2021.10.20

[IT_Trend] 롤러블 디스플레이 (Rollable Display)

| 롤러블 디스플레이 (Rollable Display)란? Rollable Display는 두루마리처럼 둘둘 말 수 있는 디스플레이를 의미한다. Flexible OLED 기술이 집약된 형태로, Polyimide 기판을 사용해 유연성을 확보하고, 디스플레이를 말 때 발생하는 스트레스를 최소화하기 위해 한층 더 얇은 형태로 구현한다. 둘둘 말거나 펼 수 있어, "작은 부피로 대화면을 구현하거나, 필요한 사이즈만큼 화면을 꺼내 쓸 수 있어 장차 다양한 용도로 사용될 것으로 기대되는 디스플레이 기술"이다. | Z플립, Z폴드와 롤러블 디스플레이 " Flexible Display 시장의 가속화 " 최근 삼성에서 Z플립과 Z폴드의 세 번째 시리즈를 출시함으로써, 또다시 큰 이슈를 불러왔다. 이를 시작으로 Flexi..

IT Background 2021.10.19

[MVC패턴]MVC(Model-View-Controller)패턴이란?

https://developer.mozilla.org/ko/docs/Glossary/MVC MVC - 용어 사전 | MDN MVC (모델-뷰-컨트롤러) 는 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴입니다. 소프트웨어의 비즈니스 로직과 화면을 구분하는데 중점을 두고 developer.mozilla.org MDN에서의 정의 | MVC(Model-View-Controller)패턴이란? ⭐요약 정의 MVC패턴은 소프트 웨어 디자인 패턴중 하나로 '비즈니스 로직과 사용자 화면을 분리'하여 관리를 용이하게(목적) 해주는 디자인 패턴이다. 📕사전적 정의 - MVC (모델-뷰-컨트롤러) 는 사용자 인터페이스(View), 데이터(Model) 및 논리 제어(Controlle..

Back-End 2021.10.14

[EL&JSTL] EL(Expression Language) 사용방법

목차 1. EL 리터럴 표현식 2. EL을 사용하여 값 꺼내기 3. 연산자 종류 | EL 리터럴 표현식 데이터 EL 코드 result 문자열 ${"test"} test 문자열 ${'test'} test 정수 ${20} 20 실수 ${2.8} 2.8 boolean ${true} true null(빈 문자열 출력) ${null} | 값 꺼내기 - 배열 또는 리스트(일반적인 '배열', '리스트'의 인덱스와 동일하게 생각하면 된다. 0부터 시작) ${list[2]} - Map ${map.keyName} Example Map map = new HashMap(); map.put("student","jack"); pageContext.setAttribute("map","map"); ${map.student} // -..

Back-End 2021.10.12

[JAVA]백준 17281번: 야구공

https://www.acmicpc.net/problem/17281 17281번: ⚾ ⚾는 9명으로 이루어진 두 팀이 공격과 수비를 번갈아 하는 게임이다. 하나의 이닝은 공격과 수비로 이루어져 있고, 총 N이닝 동안 게임을 진행해야 한다. 한 이닝에 3아웃이 발생하면 이닝이 종 www.acmicpc.net 난이도 문제 이해 ⭐⭐⭐⭐ 구현 ⭐⭐⭐⭐ | 문제 해결방법 💡Idea : 순열 + 브루트포스 알고리즘 1. 타순을 결정한다.( 한 번 결정된 타순으로 모든 이닝을 진행 ) - permutation() 2. 게임을 진행한다. ( 한 이닝은 아웃이 3회가 되면 종료한다. ) 2-1. 주어진 이닝 수 만큼 게임을 진행한다. - game() 2-2. 타자가 공을 친 만큼 주자들이 움직인다. - run() 3...