전체 글 (37) 썸네일형 리스트형 Github에 프로젝트 민감정보 숨기기 (application.yml) 개요 최근 진행하고있는 사이드 프로젝트에 Jwt를 적용하며 Access토큰과 Refresh토큰의 Secret Key를 깃허브 레포지토리에 올리면 안되는 사실을 알곤 있었지만 마냥 사이드 프로젝트니까 민감 정보에 대해서 크게 신경을 쓰고 있지 않았다. 그러다생각해보니 application.yml에 DB 서버 ID 비밀번호가 있다는 사실을 알게 되었고 급하게,,, yml파일을 Github에서 숨겨야했고, 빌드시에는 사용해야하다보니 방법을 찾다가 깃의 서브모듈이라는 기능으로 민감정보를 숨길 수 있는 방법을 알게되어 적용하게 되었다. 개념 서브모듈의 개념은 메인 레포지토리와 서브 레포지토리가 분리되어있는데, 서브 레포지토리가 메인 레포지토리내의 디렉토리로 생성되어 들어가는 개념으로 이해했다. 따라서 서브 레포지.. @ModelAttribute , @RequestParam 정리 컨트롤러를 작업하며 사용을 했던 @ModelAttribute, @RequestParam에 대해서 정리를 해볼까 한다. 두 어노테이션은 쿼리 파라미터에 있는 데이터를 파싱해주는 역할을 해준다. 큰 차이점으로는 @RequestParam의 경우, 1개의 인자를 받는다고 생각하면 되고 @ModelAttribute는 여러개의 인자들을 지정된 객체에 바인딩 시켜준다고 생각하면 된다. crateBoardDto의 필드로는 title, content, writer가 있다고 가정을 하고 @ModelAttribute @PostMapping("/board") public ResponseEntity createBoard(@ModelAttribute CreateBoardDto createBoardDto){ Board board .. Spring Security Jwt - 예외처리 커스터마이징 사이드 프로젝트로 구현중인 게시판 프로젝트에서 Spring Security와 jwt를 이용하여 댓글 작성 및 삭제 기능을 구현하고 있는중, 헤더에 jwt 토큰을 입력했을 때, 만료된 토큰이거나 토큰을 잘못 입력하면 500 서버에러가 나왔다. 이건 클라이언트 측 문제이기 때문에 예외처리를 따로 진행해야겠다는 생각이 들어 예외처리 방법을 알아보았다. 일단, SecurityConfig 파일에, 해당 Url을 추가시키니 403 Forbidden으로 출력이 되는것을 확인 할 수 있었다. 400대 에러가 나오긴 했지만, 어떤 문제가 있는지 클라이언트 측으로 보내주기 위해 설정들을 검색해 추가해보기로 했다. 구글링을 해보니, 내가 프로젝트 내에서 예외처리를 하던 방식인 Controller Advice는 Spring .. IntelliJ SpringBoot MySql 설정 오류 프로젝트를 새로 시작하며 DB는 AWS 프리티어로 MySql을 설정해서 DBeaver랑 연결을 해서 테이블을 생성을 해놨고 이제 서버랑 연동을 해야하는데 MySql 셋팅중에 있는데 자꾸 오류가 난다... SpringBoot 2.7.9 버전에 IntelliJ Ultimate 버전으로 사용하고있는데 분명 Gradle에서 MySql dependency 설정을 해줬는데 이렇게 인식을 못했다. 찾다보니 MySql버전을 입력을 직접 해줘야 한다고 하여 직접 적어줬다 (기존에는 버전은 작성 안되어있었음) Gradle 새로고침을하고 application.yml 확인해보니 인식 완료 되었다! 끝 Arrays.sort()와 Collections.sort() 비교 코딩테스트 문제를 풀면서 문득 Arrays.sort()의 시간복잡도가 궁금해졌다 구글링 해보니 Arrays.sort()는 듀얼 피벗 퀵소트 알고리즘을 사용하여 평균 O(nlog(n))의 시간복잡도와 최악은 O(n^2)의 시간복잡도가 나온다고한다 Collectios.sort()의 경우, 합병정렬과 삽입정렬을 결합한 TimSort 알고리즘을 사용하여 최선 O(n) 시간복잡도, 평균 O(nlog(n))의 시간복잡도와 최악도 O(nlog(n))의 시간복잡도를 갖고있다고 한다. 따라서 정렬시 특별한 사유가 없으면 Collections.sort()를 사용하면 될 것 같다 출처 [JAVA] 정렬에 대한 고찰 (Arrays.sort() 와 Collections.sort()) (tistory.com) [JAVA] 정렬에.. 프로젝트 - 전자정부프레임워크 이미지 업로드 아 진짜 이걸로 몇시간 잡아먹은지 모르겠네 [Spring][쇼핑몰 프로젝트][24] 상품 이미지 업로드(파일 서버 전송) - 2 (tistory.com) [Spring][쇼핑몰 프로젝트][24] 상품 이미지 업로드(파일 서버 전송) - 2 프로젝트 Github : https://github.com/sjinjin7/Blog_Project 프로젝트 포스팅 색인(index) : https://kimvampa.tistory.com/188 목표 상품 이미지 업로드 이번 포스팅에선 사용자가 선택한 파일의 File객체를.. kimvampa.tistory.com 이거 따라서 이미지 업로드를 구현하고 있는데, 자꾸 ajax에서 404 에러가 뜨는것이다 분명 컨트롤러 매핑은 잘 되어있는데 컨트롤러도 실행이 안되어서 왜 이.. 전자정부 프레임워크 - 컨트롤러와 jsp ajax로 json 주고받기 우선 구상했었던 페이지이다. 저 진열 상태의 체크박스를 통해 ajax로 동적으로 테이블을 구성하고자 하였고, 검색어를 통해서 진열상태와 맞는 데이터를 출력하고 싶었다! 근데 쿼리를 통해서 데이터는 조회해 오는데 자꾸 jsp 출력이 애를 먹었다.. 그래서 검색을 하다보니 [전자정부]Egov(전자정부프레임)에서 ajax로 data 요청하기 (tistory.com) [전자정부]Egov(전자정부프레임)에서 ajax로 data 요청하기 Before we go 현재 egov 전자정부 프레임 워크 프로젝트를 진행중에 있습니다. 그러다 ajax로 data를 요청하여 값을 받기로 했는데 @ResponseBody를 주어 request를 보내면 String을 제외한 나머지 data들은 500er. jjam89.tistory.. 전자정부 프레임워크_도소매 플랫폼 프로젝트_회원가입 기능 우선 그동안 해온 것들을 정리하는거니 양해 바랍니다! 앞서 프레임워크 분석에서 프레임워크는 VO에 데이터가 담겨 Controller > (Service) > ServiceImpl > DAO > SQL > DAO > ServiceImpl > (Service) > Controller 순으로 이동한다고 했다. 따라서 회원가입 기능을 위해서는 1. MemberVO.java 정의 2. MemberService.java 정의 (인터페이스) 3. MemberServiceImpl.java 구현 4. MemberDAO.java 구현 5. Member_SQL.xml 생성 및 구현 6. MemberController.java 구현 프로그램으로는 - MemberWrite.do - MemberWriteSub.do 이렇게 두개 .. 이전 1 2 3 4 5 다음