전체 글 296

Java로 배우는 디자인패턴

디자인패턴 별로 사용하는 이유에 대해서 알아보았다. 1. 반복패턴(Iterator) : for문이 아니라 Iterator를 사용하는 이유는 구현에 의존하지 않기 때문! ex) class Book{List list 선언} => class Book{Vector 선언} 으로 바꾸는 경우 for문의 구현부분도 다시 변경해야하는데, Iterator를 사용하면 이러한 구현의 변경점에 의존하지 않고 반복문을 실행 할 수 있다. 2. 어댑터패턴(Adapter) - 바꿔서 재이용하기 : 기존의 클래스를 개조해서 필요한 클래스를 만든다. 이 패턴으로 필요한 메소드를 발빠르게 만들 수 있다. 만약 버그가 발생해도 기존의 클래스에는 버그가 없으므로 Adapter역할의 클래스를 중점적으로 조사하면 되고, 프로그램 검사도 상당히..

SW마에스트로 13기 1차기획심의 회고

2022.06.16(목) 1차 기획 심의가 끝났다. 물론 합불여부는 다음주 화요일에 공지 될 예정이다. 아마 그 쯤이면 또 바빠져서 회고를 나중에 올릴 것 같다. : 4월 진행됐던 탑싯 결과가 문자로 날라왔다. 아슬하게 수준3을 찍었다. 정처기+소공 효과인듯하다. 5월 : 팀매칭 및 주제선정 5월은 팀매칭과 주제선정의 기간이었다. 거의 아이디어를 위해 정말 한달을 쏟아부은 느낌이다. 설문조사도 두번이나 실시해서 사람들에게 많은 은혜를 입었다. 아이디어는 과장 안하고 5월 한달동안 몇십개는 나온 것 같다. 처음에는 헬스장 가격공시와 에브리타임식 게시판이 많이 까였다. 사용자가 원하는 페인포인트를 찾아서 해결책을 찾아라 위 말을 가장 많이 들었다. 정말 많은 멘토님께 조언과 혼을 나고 정말 "토하고싶으면 토..

SW마에스트로 13기 예비과정 회고

4월 예비과정은 미니프로젝트를 위한 준비와 다양한 멘토님들의 특강을 듣는 방식으로 진행됐다. 1. 미니프로젝트 기간에 HTML, CSS, JS, REST API, DB 설계에 대해 배웠다. 그리고 백엔드 개발자 한분과 함께 백엔드 파트를 맡으며 처음으로 REST API 설계에 대해서 배웠다. 깃랩에 SpringBoot + JPA 기반 백엔드 파트를 맡게되었고 막상 짜보려니 DTO에 대한 개념도 생각이 나지 않아 정말 더러운 코드(Drity Code) 방식으로 짠 것 같다. 2. 이렇게 배운 REST API 설계에 대해서 배운것을 적용 할 곳이 필요했다. 마침 학교에서 진행중인 기업사회맞춤형프로젝트1과 기술창업캡스톤디자인프로젝트1에서 팀원들에게 REST API 설계방식과 API 문서를 작성하는 방법을 알려..

Redis를 사용해서 스프링부트 캐시

https://www.youtube.com/watch?v=4YDVww8fXVA&t=1s Redis : Remote Dictionary Server의 약자('Key-Value' 구조의 데이터 저장/관리 비관계형 데이터 관리 시스템) - 인메모리 구조 - Persistence(견고함) - Programmability - Clustering - Extensibility(API 많아서 확장성 용이) - High Availiability(클러스터링이랑 같이 사용, 여러개의 서버를 사용하다가 하나가 죽었을때 사용가능) 캐시 : 자주 사용하는 데이터를 미리 보관해둠. 비용이 비싸지만 데이터를 빠르게 가져옴 캐시를 어디서 사용? => 도중에 변경 될 일이 없는 데이터베이스 조회 값 => 자주 호출되는 데이터 스프링부트..

Spring/SpringBoot 2022.06.01

2022 그램 배송/리뷰/초기세팅방법

순서 1. 배송 및 후기 2. 간단한 리뷰 3. 초기 세팅 방법 LG 2022 그램(인텔12세대) 리뷰 하지만 화면을 딱 열자마자2022 Gram 구매 모델명 : 17ZD90Q-EX56K 11번가에서 티앤티스토어를 통해서 구매를 3.22에 했고, 코로나이슈 중국봉쇄로 인해서 2022.05.16 퀵배송으로 입고된 제품 받았습니다! => 바로 구매후기 작성하고 리뷰이벤트 등 다 참여해서 그램뷰까지 신청완료! 기존에는 15.6인치 게이밍 노트북 사용을 했었는데, 딱 노트북 받자마자 느낀건 어? 생각보다 작네?였습니다. 하지만 화면을 딱 열자마자 OLED스크린에 17인치는 매우 만족스러웠습니다. 그리고, 노트북을 들어보니 외장그래픽이 들어있는 제품임에도 확실히 외장그램도 그램은 그램이다! 라는 생각이 들만큼 가..

IT제품리뷰 2022.05.16

[Github] branch생성 후 push하기

전제 : 깃 연결해놓은상태 깃 시작~생성했던 깃 브랜치에 대해서 push까지 하는 과정이다 git init git remote add origin 플젝링크 git pull origin 브랜치이름 git checkout 브랜치 이름 //만들어놓은 브랜치이름 ㄱㄱ git add . //다 추가 git commit -m "어쩌구" //커밋내용 git push origin 브랜치이름 //만들어놓은 브랜치이름 ㄱㄱ * 해당 branch가 이미 생성되어야 할 수도 있으며 깃 웹에서 직접 추가할 수 있음

Github 2022.05.12

SpringBoot CORS에러 해결하기

https://blog.naver.com/PostView.naver?blogId=adamdoha&logNo=222292556681&redirect=Dlog&widgetTypeCall=true&directAccess=false [Spring] PUT, DELETE 403 Issue(Invalid CORS request) CrossOrigin을 모든 곳에서 열어두면 물론 안되지만, 개발 단계에서 CORS를 설정할 때, 컨트롤러마다... blog.naver.com WebConfig.java 파일을 추가하여 한꺼번에 해결해준다. 단, Controller마다 설정을 다르게 하고 싶은경우는 @CrossOrigin 어노테이션을 활용한다. import org.springframework.context.annotatio..

Spring/SpringBoot 2022.05.01

Swagger UI를 SpringBoot 연결하기

아래 설명은 SpringBoot 2.6.7버전 및 Swagger 3.0.0버전으로 최신 버전을 다루고 있습니다. 2.X 버전의 내용도 첨부하였습니다. 1. build.gradle 파일에 dependencies부분에 아래 내용을 추가해준다. dependencies { ... //https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui implementation group: 'io.springfox', name: 'springfox-boot-starter', version: '3.0.0' } 2. 스웨거 UI를 불러오기 위한 Config파일 생성 SwaggerConfig.java 파일을 베이스 패키지에 생성해준다. @Configuration ..

Spring/SpringBoot 2022.05.01

SpringBoot Swagger 에러 : Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException

아래와 같이 dependecies를 추가하여 스웨거를 사용하려고 했는데 에러가 발생했다. Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException 사용중인 버전은 아래와 같았다. springboot : 2.6.7 swagger : 2.6.1 Spring boot 2.6버전 이후에 spring.mvc.pathmatch.matching-strategy 값이 ant_apth_matcher에서 path_pattern_parser로 변경되면서 몇몇 라이브러리(swagger포함)에 오류가 발생한다고 합니다. application.yml 에 아래 설정을 추가하면 오류가 발생 안한다고..

Spring/SpringBoot 2022.05.01