👩💻 BackEnd 썸네일형 리스트형 [JSP/JSTL] jsp에서 LocalDateTime -> Date 포맷 변경해서 사용하기 개발환경sts4oracle xe 11gdbeaver java8 jsp 에서 날짜를 출력하는 과정에서 발생한 에러 Cannot convert [2024-05-01T05:47:21] of type [class java.time.LocalDateTime] to [class java.util.Date] 오라클의 timestamp 타입의 날짜를 가져오려고 하자 localDatetime 타입을 Date 타입으로 포맷팅을 해줘야 한다고 한다. VO 클래스에서도 localDateTime 으로 데이터를 가져왔기 때문이다. 자바8 부터는 localDateTime을 지원하고 권장하는데 jstl은 아직 Date 타입을 원하는 것 같다. 따라서 타입을 맞춰줘야 한다. jsp 에서 바로 처리해주자 성공! ✅ .. 더보기 [ docker/oracle ] mac m1 에서 Docker 로 Oracle 데이터베이스 사용하기 대작전 요즘 인턴십을 하는 중이다. 연습용 개인 프로젝트를 진행 중인데 데이터베이스를 오라클 11g xe를 사용해서 도커를 설치해 맥북으로 돌리려고 한다. 왜냐면 회사 노트북을 들고다니기엔 등이랑 어깨가 너무 아프기 시작했기 때문. (1주차) 오랜만에 돌아온 docker 반갑다. 우선 docker 는 예전에 설치를 해둔 상태여서 docker image 파일만 검색해서 다운로드하려고 한다. 이미지 파일 검색 docker search oracle 이렇개 목록들이 나오고 끝에서 두 번째 열에 stars (별) 이 있다. 인기도를 나타내는 것일 거 같다. 인기가 많은 편에 속하는 것을 pull 받아야겠다. racleinanutshell/oracle-xe-11g 이 이미지를 선택해서 다운 받자 목록에 나온 이름 그대로 .. 더보기 멀티 스레드와 싱글 스레드, 스레드의 IO블로킹, 쓰레드 그룹 A작업에서 B 작업으로 넘어가는 것을 Context Switching (문맥전환)이라고 함. 이때 시간이 소요됨. 멀티스레드의 장점 시간이 조금 걸리더라도 하나의 작업을 수행하면서 다른 작업을 동시에 수행할 수 있다는 점이 장점. 작업을 조금 더 효율적으로 처리할 수 있다. (IO블로킹 : 입출력 시 작업이 중단되는 것을 말함). 싱글 스레드일 경우 사용자로부터 입력을 받는 동안 IO 블로킹으로 인해 아무 작업도 할 수 없지만, 멀티 스레드로 돌릴 경우, IO 블로킹이 일어나지 않아 작업을 더 빠르고 효율적으로 처리할 수 있음. 입출력 작업이 완료될 때까지 프로그램이 기다리는 것. 싱글 스레드의 예제 package ch13; import javax.swing.*; // 싱글스레드 public class .. 더보기 [ SpringBoot / OAuth2] facebook 로그인 기능 구현하기 오늘은 스프링부트를 사용한 애플리케이션에 페이스북 로그인 기능을 구현해보았다. pom.xml 의존성 추가하기 org.springframework.boot spring-boot-starter-oauth2-client 페이스북 개발자 센터 로그인하기 Meta for Developers 간단한 WhatsApp 플로 만들기 WhatsApp 플로는 WhatsApp을 떠나지 않고 원활하게 타겟과 소통하고 정보를 수집할 수 있는 방법입니다. 개발자를 위한 필요한 조치 대시보드 도입 developers.facebook.com에서 developers.facebook.com 로그인한 뒤 오른쪽 위 초록색 버튼인 "앱만들기" 클릭 배포한 서비스가 아니라서 일단은 로컬호스트로 주소를 설정해준다. 등록 완료 후 왼쪽 아래 "앱.. 더보기 [ SpringBoot ]@NotNull, @NotEmpty, @NotBlank 차이 @NotNull : null 값 체크 @NotEmpty : 빈 값이거나 null 체크 @NotBlank : 빈 값이거나 null 체크 그리고 빈 공백(스페이스)까지 체크 더보기 [ SQL / DB ] ERD Cloud 작성하기 : 식별 관계와 비식별 관계, 관계차수 개인 프로젝트 ERD 를 그리는 중이다. 하나씩 그려보려고 하니까 왜 그런지 이유들이 점점 궁금해져서 시간이 너무 오래걸린다. 그래도 확실하게 공부하고 정리해두기 위해 글을 써본다! 가장 먼저 부딪힌 문제는 식별 관계인가 비식별 관계인가. 지금 현재 나는 DBeaver 라는 프로그램을 사용하고 있는데 DBeaver 는 엔티티 관계도 기능을 제공하지만 모두 점선으로 나타나 있고, 관계차수가 잘 드러나지 않는 엔티티 관계도인 것 같다. ERD를 참고할 수 있는 정보가 있는 ERD Cloud 에 들어가서 다른 ERD 들을 구경해보았다. ERDCloud Draw ERD with your team members. All states are shared in real time. And it's FREE. Datab.. 더보기 [ SQL / DB ] 쿼리 저장소 조인과 스칼라 서브쿼리 로그인 (1 ssar) -- 구독 정보(2 cos) 1번과 3번의 정보가 구독 모달에 출력 (준비중...) 서브 쿼리 (내용이 다소 길고, 조금 헤메는 과정이 있음) 조건 : 좋아요가 많이 눌린 게시물 가져오기 ## id 가 2,3 인 사진의 정보를 불러오기 SELECT * FROM image WHERE id IN (2,3); ## likes 테이블에서 imageId를 중복 없이 가져오기 ## likes 테이블에 있는 imageId라면 좋아요가 눌린 게시물이기 때문이다. SELECT distinct imageId FROM likes; 첫번째 쿼리의 WHERE 절에 id 값을 두번째 쿼리로 준다면 좋아요가 눌린 게시물 정보 불러오기가 가능해진다. 하지만 중복을 제거하여 가져오는 것은.. 더보기 [SpringBoot] 중복 유니크 키 제약조건 생성 중복 유니크 키 선언하는 방법을 알아보자. 중복 유니크 키는 왜 선언했는가? 게시물 좋아요 기능을 만들기 위해서 좋아요 엔티티를 선언하는 과정에서 한 사람이 하나의 이미지에 대해서 좋아요를 눌러 DB에 하나의 row 데이터가 생성되었다고 가정했을 때 동일한 사람이 동일한 이미지에 대해서 다시 좋아요를 누를 수 있는가? 아니다. 한 사람은 하나의 게시물에 좋아요를 눌렀을 경우, 다시 좋아요를 누르면 중복 데이터가 쌓이는 것이 아닌 좋아요가 취소가 되어야 한다. 즉, userId와 imageId 는 중복 유니크 키로 선언해야한다. 그 과정은 다음과 같다. @Table 어노테이션에 uniqueConstraints 속성을 주고, @UniqueConstraints 어노테이션에 name 속성을 likes_uk 로 .. 더보기 이전 1 2 3 4 5 ··· 10 다음