Dev-Kyuu
article thumbnail
ETC | Github으로 협업하기
⛴ 항해 2022. 12. 15. 01:25

난 깃허브 응애 오늘 처음으로 깃헙을 통해 협업을 진행해보았고, 오늘 알게된 내용을 바탕으로 정리하려고한다. 👯 Github으로 협업하기 1. 환경설정을 마친 프로젝트 파일을 Github Repository에 올린다. - 각자 입맛대로 환경설정을 하고나서 되돌리려면 꽤 먼길을 돌아와야하기때문에 환경설정을 마친 프로젝트 파일을 한사람이 올리고, 나머지 팀원들은은 그 파일을 Clone으로 내려받아서 작업을 시작한다. - main 브랜치에 개인이 작업한 소스를 업로드 하는 일이 없도록 별도의 병합 브랜치를 하나 만들어두고, 병합 브랜치를 root로 잡은 개별 브랜치들도 생성한다. git clone -b 브랜치이름 --single-branch https://GithubUrl ./폴더명 // 로컬에 원격 개인 브..

article thumbnail
Spring | @Transactional이 뭔데
🌽 Spring 2022. 12. 15. 00:53

🗄 트랜잭션? 트랜잭션은 데이터베이스 관리 시스템이나, 유사한 시스템에서의 상호작용 단위로 데이터베이스를 다룰 때 트랜잭션을 적용하면 데이터 추가, 갱신, 삭제 등으로 이루어진 작업을 수행하다가 처리 중 오류가 발생했을 때 모든 작업을 원상태로 되돌려주고, 모든 작업이 성공해야만 최종적으로 데이터베이스에 반영함 스프링은 어노테이션을 이용한 트랜잭션 처리를 지원한다. 🌀Transactional 어노테이션 해당 어노테이션은 클래스나, 메서드에 붙여줄 겨우 해당 범위 내 메서드가 트랜잭션이 되도록 보장한다. 이와같이 사용하는것을 선언적 트랜잭션이라고하고, 객체를 만들 필요 없이 선언만으로 관리를 용이하게 한다. ❓ Transactional 어노테이션의 작동 원리와 흐름 @Transactional이 붙은 메서드..

article thumbnail
Spring | AOP가 뭔데
🌽 Spring 2022. 12. 15. 00:33

🎟 AOP ? : AOP(Aspect Oriented Programming) 관점지향 프로그래밍 : 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어 그 관점을 기준으로 각각 모듈화하여 개발하는 프로그래밍 기법 위 그림에 있는 블럭들 처럼 소스코드 상에서 반복되는 코드들을 흩어진 관심사라고하고, 흩어진 관심사를 Aspect로 모듈화 + 핵심 비즈니스 로직에서 분리하여 재사용하는것이 AOP의 취지이다. ✨ AOP로 나뉘어지는 개발의 두 종류 관점 : 업무 : 업무 이외 부가 기능(로직, 예외처리) 📍 Aspect? : 흩어진 관심사를 묶어서 모듈화 한것으로 Advice와 Point Cut이 들어간다. - Advice : 해야할일들에 대한 정보를 가지고 있음 - Join Point : 메서드 실..

article thumbnail
JPA | JPA With Native Query
📝 JPA 2022. 12. 14. 11:13

JPA(Java Persistence API)를 사용할 때, JPA에서 제공하는 쿼리 메서드 외 SQL 쿼리를 직접 입력하여 사용해야 하는 경우가 있다. 나의 경우에는 테이블에 어떤 조건의 갯수를 구할때 Entity에서 @Folmura를 사용하여 서브쿼리를 사용해서 구했었는데, Entity에서 직접 DB에 서브쿼리를 날리는 건 용도 분리의 목적에서 권고하지않는다고하여 JPA의 native query를 이용하여 수정 구현하였다. NatvieQuery는 JPQL이 아닌 SQL를 직접 정의하여 사용하는 방식이다. function과 join를 하는 경우 JPQL를 사용할 수도 있지만 SQL를 직접 정의할수있는 NativeQuery를 사용할 수 있다. 📍@Formula를 사용한 Inner query 이용 방식 :..

article thumbnail
| ETC | 상속과 인터페이스
✏️ Java 2022. 12. 13. 02:43

상속과 인터페이스는 블로그 내에서도 한 세번?이상 다룬 것 같은데 아직도 새롭게 이해되는 부분이 있는 걸 보면 아직 제대로 이해 못한 것 같아서 스프링 입문을 위한 자바 객체 지향의 원리와 이해 책에서 이해한 내용을 바탕으로 다시 정리해보려고 한다!. 🐧 상속 객체지향에서 상속을 설명할때 예로 부모 - 자식 관계를 예시로 들며 설명하지만 객체지향에서의 상속은 계층/조직적인 상속 보다는 재사용과 확장으로 이해하는 것이 맞고, 객체지향에서의 상속은 상위 클래스의 특성을 하위 ㅡㅋㄹ래스에서 상속하고, 필요한 특성을 추가 / 확장해서 사용할 수 있다는 의미이다. 객체지향의 상속을 부모-자식의 계층도로 나타내었을때와, 분류도로 나타내었을때의 차이로 보면 위와 같이 분류된다. 상속관계에서 반드시 만족해야하는 문장인..

article thumbnail
| 혼공자 | Chapter 8.1 인터페이스
✏️ Java 2022. 12. 12. 11:13

Chapter 8-1 인터페이스 🔌 인터페이스 : 개발코드와 객체를 서로 통신하는 접점의 역할을 한다. : 개발코드가 인터페이스의 메소드를 호출 👉 인터페이스는 객체의 메소드를 호출 : 프록시 구조라고 생각하면 될 것 같다.! 개발코드는 객체의 내부 구조를 알 필요가 없고, 인터페이스의 메소드만 알고 있으면 된다. ✨ 인터페이스 선언 public interface 인터페이스이름 { ... } : 인터페이스는 객체 사용방법을 정의한것이므로 실행시 데이터를 저장할 수 있는 인스턴스/정적필드를 선언할 수 없다. : 하지만 인터페이스에 고정된 값으로 사용하는 상수 필드는 선언이 가능하다. public static final MAX_VOLUME = 10; 🌀 추상메서드 선언 : 인터페이스를 통해 호출되는 메소드는..

[항해99. 4주차 - WIL]
⛴ 항해 2022. 12. 11. 22:15

항해99 4주차 항해일지 또 한주를 열심히 살아내고 죽지않고 WIL을 쓰러 들어왔다 ! ✨ 정신없는 주특기 숙련주차를 끝내고, 주특기의 정점인 심화주차의 시작이다. 매주매주 새로운 걸 배우고있는데 익숙해질 틈을 주지않는게 항해의 장점이자 ? 단점인 것 같다. 주특기 3주간 Spring 입문 👉 Spring JPA 👉 Spring Security 순으로 공부를 하고 있는데 소스 까막눈이였던 내가 한줄 한줄 이해를 하고있는거보면 공부방법이 나름 효과가 있는 것 같음 이번주차가 끝나면 미니프로젝트, 클론코딩주차인데 프론트분들과 하는 협업이라니 !! 넘 기대된다 이번주에 기초 탄탄히 잘 다져두어야겠담 🔑 이번주 키워드 (ORM, MVC) https://kyuu-ng.tistory.com/67 ETC | ORM이..

ETC | ORM이 뭔데
카테고리 없음 2022. 12. 11. 22:14

ORM : Object Relational Mapping 의 줄임말로 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 프로그램 기법 : 관계형 DB를 매핑해주는 프로그램 기법의 전체를 아우르는 개념 ❓그럼 왜 쓰는데? : 객체지향적인 코드로 인해 직관적이고 비즈니스 로직에 더 집중 할 수 있도록 도와주는 역할을 함 : 재사용 및 유지보수의 편리성이 증가 *) 프로젝트의 복잡성이 크면 구현 난이도가 상승한다. 자바 진영의 ORM 표준 기술인 JPA는 아래 포스팅에 자세히 적아두었다 ! https://kyuu-ng.tistory.com/46 Spring | JPA ? 🧑🏻‍💻 1. JPA? 오늘의 키워드 JPA는 Java Persistence API의 줄임말로 "자바 진영의 ORM 표준 기술"이라고..

article thumbnail
| ETC | 프로세스와 스레드
✏️ Java 2022. 12. 10. 09:41

✏️ 프로그램과 프로세스, 스레드 프로그램 : 파일이 저장 장치에 저장되어 있지만 메모리에는 올라가 있지 않은 정적인 상태 : 아직 운영체제가 프로그램에게 독립적인 메모리 공간을 할당해주지 않았고, 움직이지 않은 상태라는 뜻 : ex. 윈도우의 *.exe 파일이나 MacOS의 *.dmg 파일 등등 프로세스 : 프로그램을 실행하여 파일이 컴퓨터 메모리에 올라가여 실행중인 상태 : 운영체제로부터 자원을 할당받는 작업의 단위 스레드 : 할당 받은 자원을 이용하는 실행 단위 🔎 프로세스와 스레드 어떤점이 다른데? 이전에는 프로그램 실행시 실행부터 끝까지 프로세스 하나만을 사용해서 진행하였지만 시간이 지날수록 프로그램이 복잡해지고 프로세스 하나만을 이용해 프로그램을 실행시키기 어려워져 더 작은 실행단위의 개념인 ..

article thumbnail
*. 오늘의 요약
⛴ 항해 2022. 12. 9. 01:25

article thumbnail
[항해99] 주특기 숙련 주차 테스트 리뷰
⛴ 항해 2022. 12. 8. 21:24

✏️ 주특기 숙련주차(Spring) 문제 서점 서비스를 구현해 볼까요? 항해서점이 제주도에 분점을 냈습니다. (서점(BookStore) , 책(Book) , 회원(Member), 구매(Purchase) Entity 가 있습니다.) [공통 요구사항] ERD, SQL을 참고하여 구현해 주세요.(컬럼 명은 자유롭게 하셔도 좋습니다.) nullable 등의 세부조건은 실제 서비스를 구현한다고 생각하시고 서비스 관점에서 자유롭게 하셔도 좋습니다. 📍 Exam 1. 책 재고가 부족하여 다음주에 책들이 새롭게 들어오기로 했습니다. 책을 서점에 등록하려고 합니다. 책(Book) 과 서점(BookStore)의 연관관계를 맺어보세요! [요구사항] 다대일 단방향 연관관계를 적용해주세요. [ERD] [수행 코드] BookSt..

article thumbnail
[항해99] 주특기 숙련 주차 Spring 과제 진행결과 보고의 건
⛴ 항해 2022. 12. 8. 17:05

스프링부트로 로그인 기능이 없는 나만의 항해 블로그 백엔드서버 만들기 Part 2 🏁 1. 과제 요구사항( 회원가입, 로그인, 댓글 기능 추가) 회원 가입 API username, password를 Client에서 전달받기 username은 최소 4자 이상, 10자 이하이며 알파벳 소문자(a~z), 숫자(0~9)로 구성되어야 한다. password는 최소 8자 이상, 15자 이하이며 알파벳 대소문자(a~z, A~Z), 숫자(0~9), 특수문자로 구성되어야 한다. DB에 중복된 username이 없다면 회원을 저장하고 Client 로 성공했다는 메시지, 상태코드 반환하기 회원 권한 부여하기 (ADMIN, USER) - ADMIN 회원은 모든 게시글, 댓글 수정 / 삭제 가능 로그인 API username,..

article thumbnail
JPA | 연관관계
📝 JPA 2022. 12. 8. 02:21

🌀 Entity 매핑 / 기본키 매핑 객체와 테이블 매핑 어노테이션 종류 @Entity : JPA를 사용하여 테이블과 매핑할 클래스에 작성하는 어노테이션 @Entity(name="Blog") name : JPA에서 사용할 엔티티 이름을 지정(기본값 = 클래스 이름) 주의사항 : final, enum, interface, inner 클래스에는 사용 불가능하다. @Table : 엔티티와 매핑할 테이블을 지정하는 어노테이션 *) 데이터 베이스 스키마 자동 생성 : JPA는 데이터베이스 스키마를 자동으로 생성하는 기능을 지원한다. #application.properties spring.jpa.hibernate.ddl-auto=create spring.jpa.hibernate.show-sql=true @Id : ..

article thumbnail
Spring | DI, IOC가 뭔데
🌽 Spring 2022. 12. 8. 01:40

스프링을 하다보면 진짜 너어어어어어무 너어어어어어어무 무시하고싶지만 들숨에 IOC,, 날숨에 DI가 계에에에에에속 나와서 이걸 이제 더이상 무시하고 지나갈수 없을 정도로 나온다. 이걸 모르면 스프링을 모르나요 !?!?!?!? 의 답은 Yes 인가보다 ㅋ.. 그래서 약 2주간 외면했지만 오늘은 큰마음을 먹고 직면하기로했다. 도대체 IOC, DI가 뭔데 이렇게 질척이는건데 ! 😧 🔎 그래서 DI, IOC가 뭔데? Dependency Injection(의존성 주입) 프로그램은 객체들의 조립으로 만들어지는데, 위 그림과 같이 일체형 형식과 조립형 형식이 있다. 일체형 : 부품(dependency) B를 A에서 직접 제어하여 B의 객체가 변경되면, B의 객체도 변경되게 된다. : 결합력이 높아서 하나의 객체를 바..

Etc. 01 | Enterprise Application
🌽 Spring 2022. 12. 6. 01:47

이번주부터 [스프링 입문을 위한 자바 객체 지향의 원리와 이해]라는 책을 기반으로 한 스터디를 진행하기로하였다. 생각만 하고 구매하진 않고 하루 이틀 흐지부지 지나고 있었는데 또 나를 일깨워주신 동기님께 무한한 감사를 ... 🖤 목표는 만나기전에 한 챕터씩 읽고 각자 공유하고싶은 부분 정리해오기! 오늘의 키워드는 '엔터프라이즈 애플리케이션' 이다. 🔎 스프링 프레임워크와 엔터프라이즈 애플리케이션의 관계 스프링 프레임 워크의 사용 목적은 ? : 자바 기반 엔터프라이즈 애플리케이션 개발을 위한 위한 포괄적인 프로그래밍 및 구성 모델을 제공하기 때문에 : 주요 목표는 애플리케이션의 여러 부분을 연결하는데 필요한 모든 기술을 제공하고, 전담 처리 하는 것 그럼 엔터프라이즈 애플리케이션이란 무엇일까? : 엔터프라..

article thumbnail
| 혼공자 | Chapter 7.1 상속
✏️ Java 2022. 12. 5. 11:01

Chapter 7.1 상속 👪 1. 상속 : 부모 클래스의 멤버를 자식 클래스가 물려 받는 것을 말한다. : 프로그램에서의 상속은 자식 클래스 선언시 어떤 부모 클래스를 상속받을 것인지 결정한다. class child extends Parents { } // 다중 상속은 불가하여 1 자식 클래스는 1상속만 가능 🛎2. 부모 생성자 호출 : 자식 객체를 생성하면, 부모 객체가 먼저 생성되고 그 다음에 자식 객체가 생성된다. : 부모 생성자는 자식 생성자의 맨 첫줄에서 생성된다. # 부모 클래스 public class People { public String name; public String ssn; } public People(String name, String ssn){ this.name = name;..