일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- SpringBoot개인프로젝트
- restful api 작성 방법
- springboot mysql
- create 모드
- 어노테이션
- Intellij terminal jar
- ERD 수정
- intellij 속도 향상
- logout http 메소드
- 할일관리
- sendError()
- jpa
- springboot
- Gradle - Groovy
- 테이블구성
- restful login 메소드
- 데이터베이스
- 파이썬
- 아규먼트 리졸버
- jpa 연관관계
- restful api 명세서
- 테이블항목
- 쿼리에러
- Gradle - Kotlin
- 알고리즘
- initializr
- 연관관계
- auto ddl
- restful 카멜케이스
- 터미널 실행
- Today
- Total
목록전체 글 (36)
리나 Dev토리

Today 할일관리 프로젝트를 CI/CD 하는데 성공하였다. 먼저 CI, CD 개념부터 요약하면 CI는 Continuous Integration 지속적인 통합 여러 branch로 작업한 코드들이 빈번하게 merge되게 해주는 것이다. 자주 합쳐줘야 변경내용의 간극이 적어서 merge시 충돌을 줄일 수가 있다. 특히 여러 개발자가 같이 개발하다보면, 다른 개발자가 변경한 내용을 내꺼에 반영안한 채로 개발하다보면 합칠때 기능이 안되거나, 어느 코드로 적용해야하는지 힘들게 resolve 할수 있다. CD는 Continuous Delivery/Deploy 지속적인 제공/배포 CI에서도 build 하면서 Test Code가 실행되서 테스트되긴 하지만, CD에서도 다른 시스템과의 통합 테스트, 부하 테스트를 거쳐서..

할일 목록 페이지에서 우선순위에 저장된 값이 있으면 th:if 에 따라 해당 번호의 icon이 표시되게 하였다. 나오긴 잘 나오는데, 코드를 뭔가 더 효율적으로 줄이고 싶어서 찾아보고 th:classappend 문법을 사용하여 코드를 줄여주었다. 가독성은 위에꺼가 더 좋은 것 같기도 하지만 아래 코드로 간결해져서 만족한다.

Intellij IDE에서 어플리케이션 실행하면 시작되는데 시간이 좀 걸리는데 html, CSS 외에 spring 코드 등을 수정할 때마다 몇초동안 시작되길 기다려야 한다. 실행 속도를 향상시키려면 몇가지 방법이 있다. 1. Gradle 대신에 Java로 실행하기 Settings에 들어가서 Build - Tools - Gradle 에 들어가서 그림과 같이 Build and run using과 Run tests using을 IntelliJ로 변경합니다. 2. 최대 힙 크기 늘리기 빌드 속도는 PC 성능에 영향을 받기 때문에, 최대 힙 크기를 조절해보는 것도 좋다. Help 메뉴 Change Memory Settings 를 클릭하고 Maximum Heap Size 를 늘려준다. 현재 700 MB로 되어있어서..

서블릿 세션을 적용하고 세션 정보를 가져오는 방법들이 여러 가지 있다. 1. HttpServletRequest에서 세션 정보 가져오기 2. @SessionAttribute에서 세션 정보 가져오기 3. 어노테이션을 생성하고 ArgumentResolver 만들기 하위 단계부터 적용해보며, 불편함을 느낄 때 코드를 업그레이드 해보았다. 1. HttpServletRequest HttpServletRequest 는 웹 브라우저에서 서버로 요청을 보낼때 사용된다. - HttpServletRequest 가 HTTP 요청 정보를 서블릿에게 전달한다. - 그래서 요청 메세지에 있는 header나 Body에 있는 내용, session, cookie 등 정보를 알 수 있다, 위에서 if(session == null) 이면 ..

카테고리 CRUD, 할일 CRUD를 구현하고 카테고리 목록, 카테고리 추가, 할일 추가 페이지는 Thymeleaf로 보여주었고 카테고리 클릭시 하위카테고리 & 할일목록은 AJAX로 보여주었다. 카테고리명, 할일이름 옆에 수정 icon, 삭제 icon을 붙여서 - 수정 icon 클릭시 ajax로 input text가 보여지고 수정되게 - 삭제 icon 클릭시 ajax로 삭제되게 오늘할일로 '추가' 시 - 오늘날짜 밑에도 목록이 생기고 - ajax로 DB에도 저장되게 오늘할일에 별표 ☆클릭시 - ajax로 DB 저장 및 ★로 바뀌게 처리 회원가입에서 validation는 - 비밀번호 확인용 불일치는 Javascript에서 유효성을 검사하였고, - ID 중복, 공백 검사는 BindingResult로 Thyme..

어제 까지 잘 실행되던 어플리케이션이 오늘 실행하니 dataSource 빈을 만드는데 에러가 났다. 윈도우 - 관리도구 - 서비스 가서 봐도 잘 실행되고 있고 혹시 해서 다시 시작하고 HeidiSQL에서도 잘 접속되고 CMD에서도 잘 접속되고 gradle이나 properties 파일도 건들여진게 없었다. 그래서 DB 커넥션 pool 상태를 조회해보니 show status like '%connect%'; 동시 접속자는 현재 1 밖에 없었고, max connection 설정은 초기값 대로 151 이었다. Failed to load driver class com.mysql.cj.jdbc.Driver in either of HikariConfig class loader or Thread context class..

에러 할일들 목록에서 몇개를 선택하고 오늘날짜로 추가하고 나서 오늘 날짜 밑에 할일 목록을 뿌려주는 데서 IllegalStateException: Cannot call sendError() after the response has been committed StackOverflowError: null 위 에러가 나왔다. 원인 할일들 객체를 json으로 바꾸는 과정에서 연관관계 있는 todo와 user가 계속 서로를 참조하면서 재귀함수가 계속적으로 발생하여 stack 공간이 부족해져서 나온 에러이다. 해결 방법 @ManyToOne 연관관계가 매핑 되는 필드인 User 와 Category 에 @JsonIgnore를 붙여주면 순환 참조가 끊어지게 된다. 참고: https://zoetechlog.tistory...

할일 관리 프로젝트를 하면서 오늘 날짜에 할일을 저장하는 중에 Todo : Day 관계가 1 : N 경우도 있고 N : 1 경우도 있고 => 즉 N : N으로 만들어야 했다. 그런데 김영한 쌤 강의에서 N:N는 가급적 하지 말라고 하셨다. @ManyToMany 를 사용하지 말고 별도로 중간 테이블 역할의 엔티티를 추가하여 N:N → 1:N, N:1 으로 풀어서 만들어야 한다. 그래서 혹시 @ManyToOne 같은 연관관계 어노테이션 안쓰고 저장해도 되는지 찾아보았다. @ManyToOne과 같은 연관관계 어노테이션 없이도 저장할 수 있다. 그러나 이 경우에는 연관된 엔티티를 직접 참조해야 한다. 예를 들어, 다음과 같은 코드에서는 Team 엔티티와 Member 엔티티가 연관되어 있다 @Entity publ..