공중화장실 찾기 - 3 <네이버 지도 API 적용>
·
Java/공중화장실 찾기
2024.09.08 - [Java/공중화장실 찾기] - 공중화장실 찾기 - 2 " data-og-description="2024.09.06 - [Java/공중화장실 찾기] - 공중화장실 찾기 - 1 " data-og-description="최근 부쩍 단조로워진 나의 삶이 지루해져서 재미난 게 없을까 생각하다가 요 근래 속이 많이 안 좋아화장실을 찾는 일이" data-og-host="magicmk.tistory.com" data-og-source-url="https://magicmk.tistory.com/105" data-og-url="https://magicmk.tistory.com/105" data-og-image="https://scrap.kakaocdn.net/dn/oUQNe/hyWZlTYH4e/w..
공중화장실 찾기 - 2 <공공데이터 가공>
·
Java/공중화장실 찾기
2024.09.06 - [Java/공중화장실 찾기] - 공중화장실 찾기 - 1 " data-og-description="최근 부쩍 단조로워진 나의 삶이 지루해져서 재미난 게 없을까 생각하다가 요 근래 속이 많이 안 좋아화장실을 찾는 일이 많았다. 그래서 밖에서도 쉽게 화장실을 찾을 수 있도록 공공데이터를 " data-og-host="magicmk.tistory.com" data-og-source-url="https://magicmk.tistory.com/104" data-og-url="https://magicmk.tistory.com/104" data-og-image="https://blog.kakaocdn.net/dna/pxVew/hyWZkHi4v8/AAAAAAAAAAAAAAAAAAAAAEMLZA05Bb0-6ryM5X2DVJjV4hfRl13oOJnkBXvEW8Oe/img.pn..?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1767193199&allow_ip=&allow_referer=&signature=A38N6Wr72I6zhb%2BHxqxIVM15GZU%3D
공중화장실 찾기 - 1 <프로젝트 생성 및 네이버 지도 API 적용>
·
Java/공중화장실 찾기
최근 부쩍 단조로워진 나의 삶이 지루해져서 재미난 게 없을까 생각하다가 요 근래 속이 많이 안 좋아화장실을 찾는 일이 많았다. 그래서 밖에서도 쉽게 화장실을 찾을 수 있도록 공공데이터를 이용해지도에 표시해 두면 재밌겠다는 생각이 들어 프로젝트를 만들어봤다.✅ 프로젝트 생성https://start.spring.io/위 사이트에 접속하여 프로젝트를 생성해 준다.  spring boot 버전은 사진에는 3.3.3으로 되어있지만 본인은 3.3.2로 진행하였다. Java는 17버전으로 진행하였다.Dependencies의 경우는 기본적으로 JPA, Web, Lombk, H2 DB, Thymeleaf 를 사용하며 Batch는 공중화장실공공데이터가 API 형식이 아니고 엑셀 형식으로 제공되기 때문에 해당 데이터를 DB..
HttpSessionListener를 이용한 중복 로그인 방지
·
Java/Spring Boot
프로젝트를 간단하게 진행하다 보니 중복 로그인에 관한 내용을 신경 쓰지 않고 있었다. Spring Security를 이용하면 수월하다고 하던데프로젝트에 Spring Security를 적용하지 않아서 급한대로HttpSessionListener를 이용하여 중복 로그인을 방지해 보았다.✅ SessionConfig@Slf4j@WebListenerpublic class SessionConfig implements HttpSessionListener { private static final Map sessions = new ConcurrentHashMap(); //중복로그인 지우기 public static boolean loginSessionidCheck(HttpSession session, String user..
Bean Validation
·
Java/Spring Boot
Spring boot에서 검증 기능을 매번 작성하는 것은 번거롭다. 검증 로직의 대부분은 빈 값인지, 특정 크기를 넘는지 아닌지와 같은 매우 일반적인 로직이다. 이런 로직을 모든 프로젝트에 적용하도록 공통화하고, 표준화한 것이 Bean Validation이다. 의존성 주입 Bean Validation을 사용하기 위해서는 gradle에 의존성을 추가해야 한다. implementation 'org.springframework.boot:spring-boot-starter-validation' ✅ DTO @Data public class ItemSaveForm { @NotBlank(message = "상품명을 입력해주세요.") private String itemName; @NotNull(message = "가격..
Thymeleaf 스프링 통합과 폼
·
Java/Spring Boot
Spring boot에 관련해서 조금 더 공부를 하다가 Thymeleaf에서 Form을 작성할 때 훨씬 수월하고 깔끔하게 작성할 수 있는 방식에 대해서 알게 되었는데 그냥 그렇구나 하고 넘어갈 뻔하다가 블로그에 조그마한 것이라도 정리하는 습관을 다시 들이기 위해 올리기로 했다. 상황 설명 쇼핑몰 서비스를 제공한다고 가정했을 때, 상품을 등록하는 과정에서 체크박스가 사용되는 경우가 많을 텐데 이것을 Spring boot와 Thymeleaf를 통합하여 간단하게 구현할 수 있는 방법을 알아보자 상품 @Data public class Item { private Long id; private String itemName; private Integer price; private Integer quantity; pr..