H2 DataBase 초기 접속
2022. 6. 9. 15:49
개발 지식/Etc.
데이터베이스 파일 생성 방법 JDBC URL: jdbc:h2:~/DB이름 최초 접속 시 파일 생성 반드시 url에 세션키 값이 있어야함! JDBC URL: jdbc:h2:tcp://localhost/~/DB 이름 이렇게 접속 다음 접속 부터 네트워크 모드로 정상 접속 가능
spring-boot-devtools 라이브러리
2022. 6. 9. 15:39
개발 지식/Memo
spring-boot-devtools 라이브러리를 사용하면 캐시 삭제 등 개발 시 유용한 기능들을 제공한다 가장 대표적인 예로 thymeleaf 등 개발 시 동적 값을 변경할 경우 서버를 재시작해야하는데 devtools 를 사용하면 리컴파일로 간단하게 처리할 수 있다 gradle 기준으로 작성 dependencies { .... implementation 'org.springframework.boot:spring-boot-devtools' .... } 라이브러리 추가 후 th:text 부분의 문구를 변경했을 경우 기본 문구 다시 컴파일 후 새로고침을 하면 바로 적용되는 것을 확인할 수 있다!
git branch 가져오기
2022. 5. 10. 21:48
개발 지식/Memo
single-branch 를 통해 clone 한 경우 브랜치를 추가로 가져올 경우 아래 명령어를 입력 git remote set-branches --add origin 브랜치명 git fetch origin git checkout --track origin/브랜치명 https://velog.io/@burningjeong/fatal-originmain-is-not-a-commit-and-a-branch-main-cannot-be-created-from-it
JPA 기초 정리
2022. 5. 2. 23:15
개발 지식/JPA
연관관계 맵핑 toString(), lombok 무한 루프 주의 ex) Team - Member 연관관계가 있을 경우 Team.getMember.toString -> Member.getTeam.toString -> Team.getMember.toString -> Member.getTeam.toString -> Team.getMember.toString -> Member.getTeam.toString -> Team.getMember.toString -> Member.getTeam.toString -> 무한 반복됨 Json 생성 라이브러리 Controller에서 Entity 절대 반환 금지 무한루프 발생 가능성 엔티티 변경 시 API의 스펙 자체가 변경되어버림 (단순 값만 있는 DTO 변환 후 반환하는 방법..

ngrok - 외부에서 사내 IP 환경 접속 시
2022. 3. 31. 21:13
개발 지식/Etc.
ngrok 로컬 환경으로 테스트 중에 외부 PC에서 테스트해야 하는 경우가 가끔 생긴다 보통 회사에서는 공유기를 사용하기 때문에 외부에서 테스트하기가 까다롭다 테스트 하나 잠깐하려고 포트포워딩을 할 수도 없고.. 공유기 설정 권한도 없고.. 이럴때 쓰기 좋은 프로그램 하나를 소개하고자 한다 https://ngrok.com/ ngrok - secure introspectable tunnels to localhost @Botto ngrok, probably the best tool I have started to use for my webwork since firebug also great support ngrok.com 외부에서 접속할 수 있는 주소를 생성해준다 사용법도 아주 간단해서 편리했다 로그인 후 ..
입고 알림봇 (Python + 카카오톡)
2022. 2. 26. 01:14
개발 지식/Etc.
아내가 sony 카메라를 엄청 갖고 싶어 하는데 최근 반도체 이슈 때문에 물량이 없어서 구할 수가 없었다.. 물론 플미가에 사면 가능하지만 그 정도로 급한 건 아니기에 포기 상태였다 고민하다가 크롤링을 공부도 할겸 입고 알림봇을 만들어보게 되었다 파이썬이 아무래도 요즘 잘나간다고하니 Java는 잠시 내려놓고 파이썬으로 개발해보았다 처음 써보는 언어라 구조나 문법도 잘 몰라서 굉장히 허접하게 완성되었... 그래도 뭐 언어가 다 비슷비슷해서 실행만 되는 수준으로 만들기에는 어려운 점은 딱히 없었다 찾아보니 알림봇은 텔레그램으로 많이 해서 고민하다가 난 잘 쓰지도 않는 앱이고 카톡으로 알림 받는 게 더 편할 것 같아서 카톡으로 결정했다 카카오톡 개발자 설정은 다 패스하고 본 코드만 업로드 정리하려고 한다 1...

서버 메모리 누수 현상 처리 과정 정리
2022. 2. 24. 21:32
개발 지식/DevOps
현재 AWS 환경으로 서버를 운영 중에 있는데 메모리 초과로 서버가 계속 다운되는 현상이 지속적으로 발견되었다워낙 사양이 낮아서 그런가 했지만 서버 상황을 모니터링을 하다 보니 메모리가 계속해서 누적되는 게 원인인 것 같았다 타 부서에서 사용하는 서버인 데다가 python 환경이어서 지식이 아예 없는 상황이었다.. 우선은 python을 다뤄본 적이 없어서 그 부분부터 파악이 필요했다 1. 파이썬의 메모리 관리Python에서는 GC(Garbage Collection)와 레퍼런스 카운트(Reference Counts)에 의해 메모리 관리를 하고 있지만,순환 참조(자기 자신을 참조)와 같은 코드가 있으면 메모리 누수가 발생할 수 있음. 2. 테스트 계획조사한 내용에 의하면 소스 코드가 문제인가 싶어서우선 ..
페이징 라이브러리 (PageHelper + pagination)
2022. 2. 4. 14:52
개발 지식/Memo
Spring 환경에서 mybatis 또는 ibatis를 사용할 경우 PageHelper와 Pagination 라이브러리를 사용하면 아주 간단하게 페이징 작업이 가능하다 (JPA를 사용할 경우 Pageable을 사용) PageHelper 1. 환경에 맞게 라이브러리를 추가 (SpringBoot 기준) pom.xml com.github.pagehelper pagehelper-spring-boot-starter 1.4.1 2. import 추가 import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; 3. 사용 예시 import com.github.pagehelper.PageHelper; import com.github.pa..
REST API JunitTest(MockMvc)
2022. 1. 27. 22:42
개발 지식/Memo
Spring 에서 Was를 실행 하지 않고 Web URL을 테스트 하는 방법 웹을 개발할 때 매번 URL을 테스트하기 위해 Tomcat과 같은 WAS를 실행하는 불편한 단계를 생략하기 위해서 스프링의 테스트 기능을 활용한다. GET 방식이 아니고, POST 등의 방식으로 지정되어있으며, JSON 형태의 데이터를 처리하는 것을 브라우저에서 개발하려면 많은 시간과 노력이 들어감 때문에 Junit과 spring-test를 활용하는 것을 권장 자세한 내용은 주석으로 기재 TicketVO.java package org.zerock.domain; import lombok.Data; @Data public class Ticket { private int tno; private String owner; private ..
MockMvc Annotation 정리
2022. 1. 26. 22:12
개발 지식/Memo
MockMvc의 @Annotation @RunWith(SpringRunner.class) @RunWith(SpringRunner.class) 테스트를 진행할 때 JUnit에 내장된 실행자 외에 다른 실행자를 실행시킴 여기서는 SpringRunner라는 스프링 실행자를 사용 즉, 스프링 부트 테스트와 JUnit 사이에 연결자 역할을 함 @WebMvcTest @WebMvcTest 여러 스프링 테스트 어노테이션 중, Web(Spring MVC)에 집중할 수 있는 어노테이션 선언할 경우 @Controller, @ControllerAdvice 등을 사용할 수 있음 단 @Service, @Component, @Repository 등은 사용할 수 없음 @Autowired @Autowired 스프링이 관리하는 빈(Be..