졸업프로젝트 9

'바른 글씨' 프로젝트 회고록

졸업프로젝트가 드디어 끝났다..! 졸업프로젝트에 대한 간단한 소개와 전반적인 수행 과정, 프로젝트를 끝내고 나서 배운 점, 느낀 점 등에 대해 회고록을 작성해보고자 한다. 졸업프로젝트 (2021-2학기~2022-1학기) 지금 내가 재학하는 대학교 컴퓨터공학과에서는 졸업프로젝트 수행이 졸업 요건 중에 하나이다. 정확히 말하면 '캡스톤 디자인 프로젝트'이지만 대부분의 사람들이 그냥 졸업프로젝트라고 부른다. 언제 할지는 자유이지만 2개의 학기에 걸쳐 이수해야하므로 일단, 커리큘럼 상에는 3학년 2학기와 4학년 1학기에 하는 것으로 정해져있다. 나는 지금까지 휴학 없이 쭉 학교를 다녔기 때문에 커리큘럼대로 3-2, 4-1에 해당 과목을 수강하였다. 사실상 2개의 학기를 연속해서 수강해야하므로 겨울방학도 프로젝트..

졸업프로젝트 2022.06.28

[그로쓰][MariaDB/Mysql][Spring boot] DB에 저장한 Json 데이터 Spring boot에서 불러와서 사용하기, PostMapping으로 RequestBody에 Json 받아서 사용하기 - Spring boot에서 Json 활용하기

서론 이전편에서 MariaDB에 Json 데이터를 저장하였습니다. 저희 프로젝트에서는 사용자가 원하는 문학작품을 원하는 글씨체를 선택하여 전자 필기를 연습하도록합니다. 따라서 사용자가 글씨를 썼을 때 교본의 글씨와 분석하는 과정이 필요합니다. 그러므로 DB에 교본 글씨 분석 결과를 Json 형태로 저장하였고 사용자의 글씨를 json 형태로 PostMapping으로 받도록 설계하였습니다. 본론 1단계: 전달받을 Json 데이터 형식 파악하기 전달받을 Json 데이터 형식은 아래와 같습니다. json형식과 array 형식이 합쳐져 있는 복잡한 형태입니다. (음절: x좌표, y좌표, 가로길이, 세로길이, 중심점의 y좌표 / 음소: [한음절의[x좌표, y좌표, 가로길이, 세로길이]]) [ { "syllable"..

졸업프로젝트 2022.05.16

[그로쓰][MariaDB/MySQL] MariaDB에 Json 칼럼 생성하기, 복잡한 형태의 Json 데이터 저장하기 - MariaDB에 Json 저장하기

1. 기존에 있던 MariaDB table에 Json 칼럼 생성하기 alter table 테이블 이름 add column 컬럼이름 JSON; (MariaDB에서 데이터 형식을 JSON으로 하여 column을 생성하지만 'desc 테이블 이름'을 적용해보면 longtext 데이터형으로 저장되어있습니다.) 2. 데이터 저장 insert into 테이블 이름(테이블 속성) values (넣을 내용) 넣을 내용 : json_object, json_array형태로 작성합니다. json_object ("키1", "값1", "키2", "값2", ...) -> {"키1" : "값1"}, {"키2" : "값2"} 자동으로 2개씩 Json 형태로 짝지어집니다. json_array( ) : 값이 배열인 경우에 사용합니다. ..

졸업프로젝트 2022.05.13

[그로쓰][Spring boot/ AWS EC2] 외부 설정 파일, 내부 설정 파일 끌어오기의 차이점

Spring boot에서 localhost로 실행할 때나 민감정보가 아니라서 그냥 jar에 한번에 같이 넣어서 배포할 때에는 내부에서 설정 파일을 끌어오는 방식(첫 번째)를 이용합니다. 하지만 민감 정보가 포함되어있어 서버에 설정 파일을 따로 올리고 jar 내부에는 해당 설정 파일이 없다면 외부에서 설정 파일을 끌어오는 방식(두 번째)를 이용해야합니다. 한눈에 보기에는 둘이 똑같다고 생각할 수 있지만 약간의 차이점이 있으니 주의깊게 봐주시길 바랍니다. 1. jar안에 있는 내부 설정 파일 끌어오기 spring: config: import: - classpath:/설정파일 이름 2. 외부 설정 파일 끌어오기 spring: config: imports: classpath: /설정파일 이름 *만약에 내부 설정..

졸업프로젝트 2022.04.21

[그로쓰][Spring Boot Data JPA / AWS S3/ AWS RDS] Spring Boot에서 AWS RDS와 S3에 함께 정보를 저장하기

문제: 처음에는 Spring Boot에서 AWS RDS와 AWS S3에 저장하는 코드를 각각 @PostMapping 주소를 다르게 하여 구성하였습니다. 하지만 이렇게 하니 프론트에서 접근하고 파일을 보내서 저장할 때 불편함이 생겼습니다. 제안: Spring Boot 코드를 작성할 때 아예 하나의 @PostMapping 안에서 정보를 AWS RDS에 저장하고 AWS S3에 RequestPart로 받은 이미지 파일을 넘기는 코드를 작성하자. 코드: Spring boot에서 AWS S3에 이미지 업로드하는 코드는 https://kim-jong-hyun.tistory.com/78 이 글의 도움을 많이 받았습니다. 저희 프로젝트에 맞게 코드를 변형하였습니다. 일단 이 코드에서는 AWS S3와 RDS에 접근하므로 ..

졸업프로젝트 2022.04.11

[그로쓰][AWS] Route 53, ACM, ELB로 https 적용하기- 대상 그룹 설정하기 - 본편 및 오류 해결

1.Route 53으로 DNS와 IP 연결하기 Route 53으로 DNS와 IP 연결하는 과정은 이 블로그에 충분히 잘 설명되어있어 이 글( https://devlog-wjdrbs96.tistory.com/292?category=885022 )을 참고하였고 제 프로젝트에 맞게끔 변형하였습니다. *참고하실 점은 도메인 이름과 IP 연결하는 과정 중 빠른 레코드 생성에서 값에 EC2의 탄력적 IP주소를 넣는다는 점입니다. *이 과정은 현 시점(2022.04.11)의 AWS 화면구성과 이 블로그의 글에 있는 AWS의 화면구성이 크게 다르지 않아 위 링크의 글만 보아도 충분하다고 생각합니다. 2. ACM으로 https 적용하기 처음엔 1번에 있는 글의 다음 글을 참고하여 진행하였지만 해당 글에서의 AWS ACM..

졸업프로젝트 2022.04.11

[그로쓰][Spring JPA, Json]Spring JPA 쿼리를 쉽게 작성하는 법, 리스트를 Json으로 바꾸는 법, Json을 예쁘게 보이게 하는 법

1. Spring JPA에서는 findBy(속성)형식으로 쿼리를 간단히 구현이 가능합니다. 예를 들어, 위 사진처럼 작성하면 됩니다. 제가 생성한 객체의 이름은 Literature이고 속성으로 Long 타입의 이름이 id인 속성이 있습니다. findById()는 경로변수로 id를 받는데 이 id로 해당하는 Literature를 찾아주는 메소드입니다. 이렇게 findBy(객체의 속성) 형식으로 메소드를 쓰면 위 사진의 주석처럼 긴 쿼리를 직접 작성하지 않아도 됩니다. 참고할 점은 findById는 Optional로 반환하는 것이 정해져있다는 점입니다. 저는 get()을 사용하여 이 Optional에서 하나의 객체를 꺼내서 사용했습니다. 2. Gson은 기본적으로 Object를 Json 형식으로 바꿔주는 라..

졸업프로젝트 2022.02.21

[그로쓰][Mysql/MariaDB] 한글 insert가 안 된다2 (Workbench, SSL Error)

1. 상황 2. Mysql Workbench란 무엇인가? 3. 해결 방법 1. 상황 전편에서 보았듯이 이 문제가 해결된 줄 알았으나.. 다시 한글 insert를 하려고 할 때 한글이 깨져서 들어가는 문제가 발생하였다. 아마도 cmd에서 mariadb로 넘어갈 때 인코딩 문제가 생긴 듯 하다. 어떻게 고쳐야할지 감이 안 잡혀서 고민하고 인터넷으로 열심히 검색하던 중 해결방법을 찾았다. 이 방법은 Mysql Workbench를 이용하는 것이다. 2. Mysql Workbench란 무엇인가? Mysql을 보다 쉽게 다룰 수 있게 만든 툴이다. 직접 cmd 창에서 SQL문을 입력하지 않아도 되고 데이터베이스 모델링, 스키마 작성 등 여러 기능을 제공하며 사용자에게 편의를 제공한다. Mysql을 설치할 때 Wor..

졸업프로젝트 2022.01.30

[스타트][Mysql/MariaDB] 한글 insert가 안 된다.

이번 학기부터 졸업프로젝트를 시작하게 되었다. 나는 진로를 백엔드로 생각을 하고 있었기 때문에 백엔드를 맡게 되었다. 우리 팀의 주제는 한글과 관련되어있다. 이에 대해서는 앞으로 글로 포스팅 해 나갈 생각이다. 따라서 우리 팀 프로젝트의 DB는 한글 데이터를 저장가능해야한다. 하지만 문제가 생겼다. 다른 프로젝트에서 MariaDB 10.6을 사용해서 웹 사이트의 DB구축을 하였는데 한글 입력이 되지 않는 것이다. (참고: 이 때는 해결 된 것처럼 보였지만 이후에 다시 insert하려고 하니 오류가 발생하였습니다. 다음편 참고해주세요!) 이런 식으로 말이다. (이 화면은 실제 그 프로젝트의 DB 넣을 때 표시된 화면은 아니고 이 한글 입력 안되는 문제를 해결하기 위해 테스트 하던 중에 나타난 화면 중 일부..

졸업프로젝트 2021.11.24