일기장
article thumbnail
코멘토 직무부트캠프 수강후기

안녕하세요! 최근에 운 좋게도 코멘토에서 챗봇에 관한 직무부트캠프를 수강할 수 있었습니다. 현직자를 만나며 실무 경험을 얻을 수 있는 기회를 제공하는 이 프로그램에 대한 제 경험을 공유하고 싶어 후기를 작성하게 되었습니다. 🔍 신청 계기 사실 저는 현직에 관한 경험을 쌓는데에 있어 취업이 아닌 이상 인턴쉽이 가장 좋은 방식이라 생각합니다. 그러나 인턴쉽은 선별 조건이 매우 까다롭습니다. 또한 오랜 기간을 투자해야해서 대학에 재학 중인 저로서는 손쉽게 신청하기가 힘들었습니다. 그러던 도중 학교에서 코멘토와 연계한 직무부트캠프를 진행한다는 소식을 듣게 되었고 챗봇 부트캠프를 신청하게 되었습니다. 제가 이번에 수강한 챗봇 직무부트캠프는 아래에서 확인하실 수 있습니다. https://comento.kr/edu/..

article thumbnail
article thumbnail
3차 과제

과제 내용 Dialogflow 환경 구축 Dialogflow에 가입 후 로그인을 한 뒤 create new agent를 선택하면 위와 같은 창이 나옵니다. 참고로 agent는 Dialogflow에서 하나의 프로젝트를 의미합니다. 챗봇을 만들기 위해 일단 위의 Agent name이라는 부분을 작성하여 프로젝트 명을 만들어주고, 그 다음 자신에게 맞는 주요 언어와 표준 시간대를 선택해주면 프로젝트를 생성할 수 있습니다. Dialogflow 사용법 왼쪽 사이드바를 보면 여러 메뉴들을 볼 수 있습니다. 하지만 이 중 Dialogflow를 통한 챗봇 생성에 있어서 핵심이 되는 부분은 Intents와 Entities 총 두가지입니다. Intents Intents는 한국어로 직역하면 의도입니다. 즉, 챗봇으로 하여금..

타임리프를 통한 템플릿 상속
웹개발 2023. 8. 12. 19:10

HTML 코드를 작성하다보면 대표적으로 부분과 같이 공통적으로 작성하게 되는 코드가 발생합니다. 그렇기에 웹 개발에서 HTML 코드의 중복을 최소화하는 것은 개발의 효율성과 유지보수의 용이성을 높이는 중요한 작업입니다. 이번 포스트에서는 타임리프를 사용하여 템플릿 상속을 통한 코드 리팩토링을 어떻게 진행했는지에 대해 다루어보겠습니다. 타임리프란 무엇인가? 우선 간단하게 타임리프가 무엇인지 짚고 넘어가겠습니다. 타임리프(Thymeleaf)는 자바 기반의 서버 사이드 템플릿 엔진입니다. 스프링부트와의 연동이 간편하며, HTML과 XML 문서를 자바 객체로 처리할 수 있게 해줍니다. 즉, 타임리프를 통해 DB에서 가져와 여러가지 가공을 한 데이터(자바 객체)를 정적인 HTML문서에 넣어 동적인 뷰를 보여줄 수..

서비스(Service)
웹개발 2023. 8. 8. 18:58

서비스란? - 레포지토리와 컨트롤러 사이에서 세부적인 비즈니스 로직을 처리하는 계층을 서비스 계층이라고 합니다. - 컨트롤러에서 레포지토리를 호출하여 모든 로직을 처리할 수 있지만, 그러한 코드는 단일 책임 원칙을 위반하게 됩니다. 코드의 유지 보수를 위해서라도 코드는 단일 책임 원칙에 따르는 것이 좋습니다. 서비스층을 만들어 DB접근, DTO생성등을 행하게 만든다면 컨트롤러는 URL맵핑에 집중 할 수 있습니다. 서비스의 필요성 모듈화 - 서비스는 DB에 접근하여 데이터를 다루는 어떠한 기능인데, 만약 이를 서비스 파일에 저장해놓는다면 필요할 때 서비스를 호출하여 실행하면 될 것입니다. 하지만 만약 서비스 파일을 생성하지 않는다면 그 기능이 필요한 모든 컨트롤러마다 똑같은 로직을 반복하게 될 것입니다. ..

리다이렉트, 포워드
웹개발 2023. 8. 8. 16:43

컨트롤러로 들어온 URL요청을 다른 URL요청으로 돌려야할 때 리다이렉트와 포워드를 사용할 수 있습니다. 이 포스트에서는 스프링부트를 이용하여 그 두가지 방법에 대해 다루어보도록 하겠습니다. 리다이렉트(Redirect) // redirect:을 이용하여 redirect 시킬 수 있다 @GetMapping("/") public String root() { return "redirect:/question/list"; } - 이를 이용하여 사용자가 로그인을 시도했을 때 성공하면 로그인된 상태로 메인페이지로 리다이렉트를 할 수 있습니다. - 리다이렉트 방식은 클라이언트에게 새로운 URL요청을 하도록 합니다. 이는 새로운 HTTP요청을 하게 만드는 것입니다. - 이러한 방식을 사용하는 이유는 클라이언트가 새로고침..

article thumbnail
2차 과제

과제 내용 콘도 신청시 무엇을 입력받아야 할까? 목표 : 사내 복지 프로그램로 제공되는 콘도 서비스에 대한 신청을 시나리오 챗봇으로 구축 콘도 서비스 신청을 위해 필요한 데이터 : 예약자, 예약자 전화번호, 예약 시간, 예약 콘도명, 예약 인원 등등 하지만 예약자 이름이나 예약자 전화번호 등은 사내 사이트의 로그인 정보로 받아올 수 있을 것입니다. 따라서 저는 챗봇이 필요로 하는 데이터는 아래와 같다고 생각했습니다. 챗봇이 유저의 응답을 통해 얻어야하는 데이터 : 콘도명, 예약인원, 체크인 시간, 체크아웃 시간 순번 입력항목 설명 입력형태 입력타입 비고 1 콘도 예약할 콘도 1 숫자 코드로 입력 (1.서울한화콘도 2.제주신화콘도 3.강원롯데콘도) 2 인원 예약인원 수 3 숫자 총 인원 수를 입력 3 체크..

article thumbnail
타임리프 템플릿에 데이터 전달하기
웹개발 2023. 8. 4. 23:04

스프링부트에서 @Controller는 기본적으로 반환값을 이용하여 템플릿을 찾습니다. 이러한 템플릿에서 데이터를 담은 자바객체를 활용하기 위해서는 모델이라는 것이 필요합니다. 즉, 모델은 컨트롤러와 뷰 사이를 오가며 데이터를 전달해주는 역할을 합니다. 이번 포스트에서는 모델을 활용하는 방법에 대해 다루어보도록 하겠습니다. 컨트롤러에 모델 주입 @GetMapping("/question/list") public String list(Model model) { List questionList = this.questionRepository.findAll(); model.addAttribute("questionList", questionList); //questionList 내용을 questionList라는 속성..