서버개발

    [AWS] EC2 instance 접속 / RSA키 생성 / 공유그룹

    EC2 instance SSH 접속환경 : AWS에서 EC2-Ubuntu22.04 사용생성 시 기존에 있는 key나 혹은 새로운 키를 pem파일로 생성해둔다. 생성이 완료되면 체크 후 Connect를 눌러 접속한다. 그리고 public ip를 외우고 우측 하단에 Connect일반적으로 EC2에 접속하려면 생성 시 설정한 pem key를 사용해 접속할 수 있다.PuttyGen를 사용하면 .pem 파일을 .ppk 파일로 변경해서 putty에 키를 등록해서 접속할 수 있다.pem키가 없이 ec2 instance에 접속하려면 설정을 변경해야하는데 /etc/ssh/sshd_config → ssh 서버 설정 configuration$ sudo vi /etc/ssh/sshd_config (혹은 권한이 있는 아이디 사..

    JWT - Spring Boot JWT Tutorial 후기 및 오류 목록

    간단 후기 - 오래된 강의?인지는 잘 모르겠지만 생각보다 영상의 코드에 오류가 많아서 고치는데 시간이 필요했고, 무료 강의여서 설명이 김영한님 강의처럼 친절하지는 않아서 이해하는데 세 번정도는 돌려본 것 같다. 1~2시간이면 수강할 수 있으니 한 번쯤 들어보면 좋을 것 같다. (JPA, MVC, Security 지식이 있으면 듣기에 용이하다.) JWT Tutorial JWT란 Json 객체를 사용해서 토큰 자체에 정보들을 저장하고 있는 Web Token 구조 Header signiture 해싱을 위한 알고리즘 정보 Payload 서버와 클라이언트가 주고받는, 시스템에서 실제로 사용될 정보에 대한 내용 Signiture 토큰의 유효성 검증을 위한 문자열 - 서버가 유효한 토큰인지 감지 장점 중앙의 인증서버..

    HTTP - 김영한님 강의 정리

    HTTP - 김영한님 강의 정리 IP(인터넷 프로토콜) 복잡한 인터넷 망에서 ip주소를 통해 탐색 지정한 IP 주소에 데이터 전달 패킷이라는 통신 단위로 전달 IP 패킷 정보 출발지 IP 목적지 IP 기타 서버에서 패킷을 받았을 경우 출발지로 다시 OK 패킷을 보내준다 경로가 서로는 다를 수 있다 IP의 한계 비연결성 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 (서버 컴퓨터 다운) 비신뢰성 중간에 패킷이 사라지면? (패킷유실) 패킷이 순서대로 안오면? (순서대로 안오면..?) 프로그램 구분 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면? port번호 IP의 한계 해결 → TCP(UDP) TCP 계층 애플리케잇현 계층 - HTTP, FTP 전송 계층 - TCP, UDP ..

    [Spring] API 설계 정리 2편(API 최적화)

    @Data 어노테이션 Lombok에서 지원하는 어노테이션으로 @Getter @Setter @ToString @RequiredArgsConstructor @EqualsAndHashCode를 합쳐놓은 어노테이션이다. POJO와 bean과 관련된 모든 재사용가능코드를 생성한다 (equals : 두 객체의 내용이 같은지(equality) 비교 / hashcode : 두 객체가 같은지(identity) 비교) Fetch Join이란? JPQL에서 성능 최적화를 위해 제공하는 기능으로, 연관된 엔티티나 컬렉션을 한번에 같이 조회한다 select m from parent p join fetch p.child; 이렇게하면 연관된 엔티티나 컬렉션을 함께 조회하는데 p와 p.child를 함께 조회한다(별칭은 사용할 수 없..

    [Spring] API 설계 정리 1편(시작 전 알면 좋은 지식)

    Repository vs Service # Repository : DB에 직접적으로 접근하는 코드를 모아두는 곳 # Service : DB에 직접적으로 접근하는 것은 Repository에 맡기고 비즈니스 로직에 집중하는 것 - 구분 짓는 이유 : 비즈니스 로직과 관련된 부분에 문제가 생기면 service를 확인하고 DB 접근 관련 문제가 생기면 repository를 확인하기 위해 구분지은 것 비즈니스 로직이란? 비즈니스 로직(Business Logic)이란? 안녕하세요. Mommoo 입니다. 프로그래밍에 관한 일을 하다보면 많이 듣는 용어중 하나 인, 비즈니스 로직(Business Logic)에 대하여 포스팅 합니다. 영역 구분하기 홈페이지 회원가입으로 예를 들어봅 mommoo.tistory.com Ge..

    [Spring / JPA] Querydsl 기본 세팅

    초기 세팅 시 되지않는 오류들이 있어 한 번쯤 경험하지 않을까하여 글을 작성합니다. 1. build.gradle에 querydsl 정보 추가 //querydsl buildscript { ext { queryDslVersion = "5.0.0" } } //querydsl plugins { id 'org.springframework.boot' version '2.6.0' id 'io.spring.dependency-management' version '1.0.11.RELEASE' //querydsl id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" id 'java' //querydsl } group = 'study' version = '0.0.1-SNAPSH..

    [Spring / JPA] 프로젝트 설계를 위한 어노테이션

    JAVA JPA와 SPRING 개발을 동시에 공부하는 중 입니다. 간혹 내용이 섞여있을 수 있습니다. Entity 설계 # 클래스 어노테이션 ( Class Annotation ) // Class Annotation @Entity - 테이블과의 매핑 - @Entity가 붙은 클래스는 JPA가 관리하는 것으로, 엔티티라고 불림 > 속성 - Name : JPA에서 사용할 엔티티 이름을 지정. ex) @Entity(name = "asdf") - 보통 기본값인 클래스 이름을 사용 @Table - Entity와 매핑할 테이블을 지정 - 생략 시 매핑한 Entity이므로 테이블 이름으로 사용 > 속성 - Name : 매핑할 테이블 이름 (default. 엔티티 이름 사용) - Catalog : catalog 기능이 ..

    [JPA / DB] JPA 정의, Entity 관계모델(E-R Model)

    JAVA JPA와 SPRING 개발을 동시에 공부하는 중 입니다. 간혹 내용이 섞여있을 수 있습니다. SQL 위주의 개발의 문제점 # 지루한 코드의 무한 반복 string sql = "select name,tel from table"; // 클래스에 age 필드 추가 시 string sql = "select name, age, tel from table"; // 이와 같은 모든 sql에서 수정이 필요할 시 sql 관련 코드를 모두 // 변경해야 하므로 sql 의존적인 코드가 탄생 - 반복적인 CRUD SQL 작성과 객체를 SQL에 매핑하는 코드를 작성하는데 시간이 오래 걸린다 # 객체 지향과 관계형 데이터베이스 간의 패러다임 불일치 - 객체지향적 특성과 관계형 DB의 원하는 설계 구조가 달라 매핑에 문제..