[Git] commit 되돌리기 커밋 후 다시 이전버전으로 돌아가는 방법 terminal을 열어서 $ git log 명령어 입력시 이런식의 commit 아이디와 그에 대한 정보들이 나옴 그중에 위그림처럼 HEAD로 있는부분이 현재 커밋되어 있는부분이고 그아래 commit log에서 되돌리고 싶은 commit 아이디를 복사해서 $ git rest --hard 복사한 커밋아이디 를 입력해주면 이전 커밋으로 되돌아간다. **git log화면 나가려면 q를 누르면 된다. 개발 2022.09.02
[JPA] 엔티티 설계시 주의점 1. 다대다 관계는 절대 쓰지말자 2. 양방향 참조관계는 웬만하면 쓰지말자 (단방향으로 설계할것) 3. fetch 방식은 무조건 LAZY로 사용 4. ManyToMany, OneToMany의 경우 기본 LAZY이지만 OneToOne, ManyToOne의 경우 기본이 EAGER이기 때문에 @ManyToOne의 경우 (fetch = FetchType.LAZY)를 적어줄것 개발/Java 2022.07.18
RSA 인증방식 RSA - 위키백과 : RSA 암호는 공개키 암호시스템의 하나로, 암호화뿐만 아니라 전자서명이 가능한 최초의 알고리즘으로 알려져 있다. RSA가 갖는 전자서명 기능은 인증을 요구하는 전자 상거래 등에 RSA의 광범위한 활용을 가능하게 하였다. 1978년 로널드 라이베스트(Ron Rivest), 아디 샤미르(Adi Shamir), 레너드 애들먼(Leonard Adleman)의 연구에 의해 체계화되었으며, RSA라는 이름은 이들 3명의 이름 앞글자를 딴 것이다. 라고한다.. 데이터 전송방법 데이터 수신방법 1 데이터를 수신자의 공개키로 암호화한다. (암호화) 데이터를 발송자의 공개키로 연다. (서명검증) 2 그 데이터를 다시 발송자의 비밀키로 잠근다. (전자서명) 열리면 수신자의 비밀키로 연다. (복호화) .. 개발/Infra 2022.07.11
AWS-iterm2 접속 1. iterm2 켠후 상단 옵션에서 Profiles > Open Profiles 클릭 2. 우측하단 Edit Profiles... 클릭 3. aws EC2>인스턴스>작업>연결 화면에서 SSH 클라이언트탭에서 예: 부분에 있는 ssh -i "xxx.pem" 어쩌고 부분 복사 4. Name, Tag입력 후 command에서 Command로 바꾼후 3번에서 복사한 명력어 입력 하면 끝 **저장한 pem파일의 경로도 앞에 넣어줘야한다.** 5. New Tab으로 접속 개발/AWS 2022.07.11
AWS Mac에서 접속 1. 터미널 진입 aws-key 있는곳까지 진입 $cd /User/주소 2. 후 파일정보 확인하면 $ls -al 3. 해당 파일 실행권한이 없기때문에 권한 주입 $chmod 700 key파일 정보 후 enter 하면 x 라는 실행권한이 들어간걸 확인할수 있다. 4. ssh접속 $ ssh -i keyname.pem ubuntu@ec2퍼블릭IPv4주소 후 'yes' 입력하면 진입 완료 개발/AWS 2022.07.10
[JPA] JQPL사용시 주의 아래와 같은 경우엔 JPQL말고 일반쿼리 사용을 고려한다. 1. 여러테이블 조인 - 레거시 테이블 조인 2. DBMS에 특화된 쿼리 필요 - 예:오라클 힌트 3. 서브 쿼리 필요 4. 통계, 대량 데이터 조회/처리 이거말고도 웬만하면 select는 queryDSL, mybatis사용을 권장 출처 : https://www.youtube.com/watch?v=UtEhC68GTH0&ab_channel=%EC%B5%9C%EB%B2%94%EA%B7%A0 개발/Java 2022.05.22
[객체지향프로그래밍] 다형성과 추상화 다형성(Polymorphism) A. 여러(poly) 모습(morph)을 갖는 것 B. 객체 지향에서는 한 객체가 여러 타입을 갖는 것 - 즉 한 객체가 여러 타입의 기능을 제공 - 타입 상속으로 다형성 구현 - 하위 타입은 상위 타입도 됨 다형성 예 --------------------------------------------------- public class Timer { public void start() {...}; public void stop() {...}; } public interface Rechargeable { void charge(); } public class IotTimer extends Timer implements Rechargeable { public void charge.. 개발 2022.05.06
[객체지향프로그래밍] 객체, 캡슐화 객체란 - 기능으로 정의된 클래스 - 기능은 메소드로 표현됨 - 단순히 변수만 있고 setter getter를 제공하는건 객체가 아니라 Data 캡슐화 - 데이터 + 관련기능 묶기 - 객체가 기능을 어떻게 구현했는지 외부에 감추는 것 - 구현에 사용된 데이터의 상세 내요을 외부에 감춤 - 정보 은닉 의미 포함 - 외부에 영향없이 객체 내부 구현 변경 가능 *캡슐화하지 않았을 경우 if(acc.getMembership() == REGULAR && acc.getExpDate().isAfter(now())) { ..정회원 기능제공 } 5년이상 사용자 일부기능 정회원 혜택 1개월 무상제공기능이 추가될시 if(acc.getMembership() == REGULAR && ( (acc.getServiceDate()... 개발 2022.04.28
[객체지향프로그래밍] 의존과 DI 의존 1. 기능 구현을 위해 다른 구성요소를 사용하는것 A.의존의 예 : 객체 생성, 메서드 호출, 데이터 사용 2. 의존은 변경이 전파될 가능성을 의미 A.의존하는 대상이 바뀌면 바뀔 가능성이 높아짐 - 예 : 호출하는 메서드의 파라미티가 변경 - 예 : 호출하는 메서드가 발생할 수 있는 익셉션 타입이 추가 순환 의존 1. 순환 의존 -> 변경 연쇄 전파 가능성 A.클래스, 패키지, 모듈 등 모든 수준에서 순환 의존이 없도록 해야한다. B.의존하는 대상이 많을수록 좋지 않음. 의존 대상 많을 때 1. 기능이 많은 경우 A.한 클래스에서 많은 기능을 제공하는 경우 기능별로 분리 고려 - 각클래스마다 의존이 줄어듬 - 한 기능을 수정할때 다른기능과 관련된 코드를 수정하는일이 발생하지 않음 - 개별 기능 테.. 개발 2022.04.15