목록Programming (15)
gimmickbutreal
WARNING: UNPROTECTED PRIVATE KEY FILE! 이라고 에러가 뜨면, 보통 파일의 권한이 너무 느슨하다고 판단하기 때문입니다. SSH는 보안상의 이유로, 개인 키 파일의 권한이 다른 사용자에게 노출되지 않도록 엄격하게 설정되어야 합니다. 해결 방법 1. 명령 프롬포트 또는 터미널을 열기 cd C:/Users/user/Downloads ssh private key가 있는 경로로 접속해주세요. 저는 다운로드 폴더에 있어서 해당 경로로 접속했습니다. icacls Key_RedHat.pem /inheritance:ricacls Key_RedHat.pem /grant:r %USERNAME%:Ficacls Key_RedHat.pem /remove "NO20044\\ORA_OraDB19Home1..
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 31 32 33 34 35 36 37 38 39 40 41 42 import java.io.*; public class ConvertToUtf8 { public static void main(String[] args) { try { // 원본 파일 경로 (변경 필요) String inputFilePath = "C:\\Users\\input.csv"; // UTF-8로 변환된 파일 경로 (변경 필요) String outputFilePath = "C:\\Users\\output_UTF8.csv"; // 파일을 cp949로 읽기 위해 FileInputStream을 생..
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 import org.apache.commons.csv.*; import java.io.*; import java.util.*; public class CSVUpdaterAndSorter { public static void main(String[] args) { try { // 입력 CSV 파일 경로 String inputFilePath = "C:\\..
1. AWS RDS 사이트 접속하기 2. 데이터베이스 생성 버튼 누르기 리전은 무난하게 서울로 선택하면 됩니다. 3. 옵션 입맛에 따라 선택하기 저는 이미 식별자 이름으로 test를 사용하고 있으므로 저렇게 뜹니다. 원하는 이름으로 쓰세요. 마스터 암호는 반드시 알아야됩니다. 따로 메모해두세요. 저는 pgAdmin4 앱을 사용하는데, 서버 등록할 때 반드시 필요합니다. 본인 원하는 마음대로 하세요. 가격이 천차만별. 연결 파트는 아무것도 건들지 말고 퍼블릭 액세스 "예"만 바꿔주면 됩니다. 기본값은 아니요로 되어 있음. 그 외 나머지는 알아서 본인 선택에 따라 하면 됩니다. 4. 인바운드 규칙 편집 EC2 > 보안그룹 > 본인 VPC 클릭 이렇게 설정해주면됨 5. pgAdmin4 새 서버 추가 누르고 이..
Java, Oracle, Spring boot 환경에서 백엔드로 구축 1. Mapper 설계 1 2 3 4 5 6 7 8 9 @Mapper public interface QrCodeMapper { /** * 아래의 매개변수를 DB에 QR코드 정보로 삽입하는 역할 * @param link * @param qrCode */ void insertQrCode(@Param("link") String link, @Param("qrCode") byte[] qrCode); } Colored by Color Scripter cs - 위 코드는 Mybatis에서 사용하는 Mapper 인터페이스 - @Mapper : 해당 애너테이션은 MyBatis가 인터페이스를 Mapper로 인식하도록 함 - @Param : 해당 애너테이..
WebHook을 사용해 결제상태를 변경할 수 있습니다. 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 // lombok 라이브러리를 사용하여 getter, setter 등의 메서드를 자동으로 생성 import lombok.Data; // Hook 클래스 선언 @Data public class Hook { // createAt: Hook 생성 시간 private String createAt; // secret: Hook 인증을 위한 secret key private String secret; // status: Hook 처리 결과 상태 (e.g., "주문완료", "주문실패" ) private String status; // ..
댓글에 대해서 우선적으로 고려해야 하는 일은 댓글 테이블(tbl_reply)에 접근할 때는 댓글의 번호(rno)가 중심이 아니라, 게시물의 번호(bno)가 중심이 되어야 한다는 점입니다. 만일, bno가 200인 댓글을 찾고 싶을 경우엔 200에 해당하는 범위만 찾아서 사용(range scan)을 하면 효율적으로 찾을 수 있습니다. 이러한 구조를 생성하는 것을 인덱스를 생성한다고 말합니다. 위의 구조를 만드는 인덱스를 작성하는 SQL은 다음과 같습니다. create index idx_reply on tbl_reply (bno desc, rno asc); 인덱스를 이용하면 정렬을 피할 수 있습니다. 특정한 게시물의 rno 순번대로 데이터를 조회하기 위해 아래와 같이 코드를 작성합니다 . idx_reply를..
저는 JPA에서 가장 중요한 내용이 무엇이냐는 질문에 망설임 없이 영속성 컨텍스트라고 대답할 것입니다. 정의 JPA가 관리하는 엔티티 객체의 집합 엔티티 객체가 영속성 컨텍스트에 들어오게 되면 JPA는 엔티티 객체의 매핑 정보를 가지고 DB에 반영하게 됩니다. 이 때, 엔티티 객체는 영속성 컨텍스트 안에서 관리 대상이 되고 그 객체를 영속 객체라고 부릅니다. 엔티티 객체와 영속 객체는 다른 존재입니다. 영속성 컨텍스트는 세션 단위로 생명주기를 갖고 있습니다. 즉, 세션이 생기면서 만들어지고 세션이 종료되면 없어집니다. 비영속(new) 영속성 컨텍스트와 아무 관계도 없음(new) 영속(managed) 영속성 컨텍스트의 관리(manage)를 받는 상태 삭제(removed) 영속성 컨텍스트에서 삭제됨(remo..