전체 글 41

[그로쓰][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

4장-6장

4장 주석 이 책의 저자는 주석을 달지 않는 방향으로 유도하는 주석이 좋은 주석이라고 한다. 이 내용을 처음 보았을 때 사실 '이게 무슨 말이지?'라고 생각했다. 주석을 달지 않기 위한 주석이라니... 어떻게 보면 굉장히 모순적이지 않은가 1~3장에서 보았듯이 이 책의 저자는 변수명, 함수명 등 코드 자체적으로 이것이 어떤 의미를 담고있는지 직관적으로 나타나게 해야한다고 했었다. 이것의 연장선으로 코드가 분명하여 주석이 필요없을 정도가 되어야한다는 뜻인 것 같다. 이 책에서 말하는 좋은 주석과 나쁜 주석에 대해 간단히 요약을 해보자. 좋은 주석 - 법적인 주석 - ex. 저작권 정보, 소유권 정보 등 - 정보를 제공하는 주석 - 그래도 가능하다면 함수 이름에 정보를 담는 편이 좋음. - 의도를 설명하는 ..

클린코드 2022.04.06

1주차 1장~3장

책을 읽기 전 내가 생각했던 클린코드란? 내 코드 그리고 다른 사람의 코드를 읽으면서 '이 코드는 잘 읽히고 잘 이해가 된다.' '이 코드는 너무 복잡하다. 이해하기 힘들다.' 이런 생각을 무의식적으로 하다보니 대충 이런 게 좋은 코드, 클린코드인 것 같다는 생각을 했지 구체적으로 "이것이 클린코드다"라고 정의하지는 못했던 것 같다. 앞으로 더 나은 개발자, 성장하는 개발자가 되기 위해, 그리고 나를 위해서도 같이 일하는 동료를 위해서도 내 코드를 볼 제 3자를 위해서도 클린 코드로 코드를 짜는 것은 중요한 과제이기에 이 책을 읽게 되었다. 1장 나쁜 코드로 치르는 대가가 생각보다 굉장하다는 것을 알게 되었다. 하지만 이 점에 대해 생각을 해보지 못했을 뿐이지 어쩌면 당연한 것이다. 상상을 해보자. 나 ..

클린코드 2022.03.30

[그로쓰][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