본문 바로가기

분류 전체보기

(198)
[study] CI/CD 파이프라인 구축 CI/CD 파이프라인이란개발 환경의 코드가 테스트, 스테이징, 최종적으로 사용자에게 전달되는 다양한 단계를 거치는 프로세스입니다.한 단계가 성공적으로 완료되면 다음 단계가 자동으로 트리거되어야 합니다. 어떤 단계가 실패하면 문제 해결을 위해 빠르게 피드백되어야 합니다.   빌드 파이프라인 단계1. 메인 브랜치에 커밋하는 것으로 시작합니다. 결과는 일반적으로 대시보드에 표시됩니다.빌드 혹은 테스트 실패시 파이프라인이 중단되게 설계할 수 있습니다. 수정사항이 커밋되면 파이프라인이 자동으로 처음부터 재시됩니다. 또는 조사를 위한 실패를 플래그로 표시하고 파이프라인이 계속 진행되도록 구성할 수도 있습니다. 2. 각 테스트를 거친 후 피드백을 제공합니다. 테스트는 일반적으로 빠른 테스트부터 진행함으로 빠른 피드백..
[study] JPA 연관관계 맵핑 주인 연관관계 주인이 필요한 이유객체 지향의 패러다임과 DB의 페러다임의 차이가 있습니다. DB의 양방향과 단방향DB에는 양반향, 단방향 개념이 없습니다.외래키(FK) 하나면 양쪽의 관계를 알 수 있습니다. 객체의 단방향Member 엔티티는 Team 엔티티 클래스를 필드로 갖고 있습니다.Member 엔티티는 Team 엔티티의 모든 필드를 조회할 수 있습니다.Team 엔티티는 Member 엔티티의 필드를 조회할 수 없습니다. 객체의 양방향Member 엔티티는 Team 엔티티의 클래스를 필드로 갖고 있습니다.Team 엔티티는 여러 Member를 하나의 팀으로 속할 수 있습니다. 그래서 Member 타입을 갖는  List를 필드로 갖고 있습니다두 엔티티가 서로 참조용 필드를 갖고 있기 때문에 양쪽에서 필요한 모든 ..
[study] github 프로젝트와 마일스톤 그리고 이슈 Issue새로운 기능, 개선 필요한 기능, 버그 개선 등등 모든 것이 Issue입니다.모든 활동 내역을 Issue로 등록하고, 그 Issue를 기반으로 작업을 진행합니다.하나의 기능을 위해서 branch를 생성하듯이, 그 branch의 생성목적이 Issue가 됩니다. ex) 회원가입이 필요해?회원가입 이슈 발행 및 등록하고, 해결하기 위한 회원가입 branch를 생성합니다. Milestone내 프로젝트가 A>B>C>D 과정을 거쳐 만들어져야 한다면 A,B,C,D Milestone을 만듭니다.한 Milestone에는 여러 Issue를 등록할 수 있습니다. Label해당 Issue가 어떤 특성을 갖고 있는지, 어떤 상태인지를 파악할 수 있습니다.ex)서버 작업인지, 클라이언트 작업인지중요도기능 개선인지, 기..
[트러블슈팅] 수업 생성 로그 테이블 생성 선생님은 수업을 생성해서 학생과 1대1 화상채팅을 진행합니다.admin 페이지에서 하루에 수업이 몇개 생성되었는지 확인하기 위한 그래프를 그리려고 합니다.기존에 있던 Lecture 테이블에서 count하는게 나을지, 아니면 수업 생성 로그 테이블을 만들어서 거기서 정보를 가져오는게 나을지 알아보려고 합니다. 1. 기존 Lecture 테이블에서 수업 수를 계산하는 방법장점:간단한 구조: 추가 테이블을 만들 필요가 없어 데이터베이스 구조가 단순해집니다.관리 용이: 추가 테이블을 관리할 필요가 없어 유지보수가 더 쉬워집니다.실시간 데이터: 수업 수가 실시간으로 정확하게 반영됩니다.단점:성능 문제: 시간이 지남에 따라 Lecture 테이블의 데이터가 많아지면, 이를 직접 조회하여 수업 수를 계산하는 과정이 성능..
[Study] WebRTC : NAT, ICE, STUN, TURN에 대하여 NAT(Network Address Translation)기기는 고유의 이름으로 IP를 갖습니다. IP는 고정IP, 유동 IP가 있습니다. 그래서 실제로 고유하게 갖고 있는 IP주소인지 알 수 없습니다.그리고 내부망은 private IP이기 때문에 다른 네트워크와 통신이 되지 않습니다.NAT을 통하여 private IP에서 외부와 통신할 수 있는 public ip로 변환할 수 있습니다.public ip는 NAT에 의해 요청을 보낼때마다 바뀌기 때문에 public ip로 통신할 수 없는 문제가 발생합니다.STUN과 TRUN 서버를 이용하여 pee간의 통신을 가능하게 합니다. ICE(Interactive Connectivity Establishment)두 단말이 서로 통신할 수 있는 최적의 경로를 찾는 프레..
[트러블슈팅] 프로젝트 구조 계층형 구조 vs 도메인형 구조 - 계층형 구조와 도메인형 구조 프로젝트 구조중 하나를 선택해야 했습니다. 계층형 구조- Controller -Student -Teacher -Admin -Service -Student -Teacher -Admin -Repository -Student -Teacher -Admin 장점-  패키지 구조만 봐도 전체적인 구조를 보기 편합니다.- 계층별 응집도가 올라갑니다.단점- 규모가 커지면 여러 목적의 클래스들이 모여서 구별하기 힘듭니다.- 도메인별 응집도가 낮습니다. 도메인형 구조Student -controller -Service -RepositoryTeacher -Controller -Service -RepositoryAdmin -Controll..
07/30 74일차 REST란, REST 구성요소, URI vs URL, Http Method에 데이터 받기 REST란?REST의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것을 의미합니다. REST 구성요소1. 자원 : HTTP URI2. 자원에 대한 행위 : HTTP Method3. 자원에 대한 행위의 내용 : HTTP Message Pay Load URL vs URIURI는 식별자URL은 식별자 + 위치 - URL은 일종의 URI이다.- URL은 프로토콜과 결합한 형태이다.- URI 그자체로 이름이 될 수 있다 scheme : 리소스 접근하는데 사용할 프로토콜, 웹은 보통 http, httpsHost : 접근할 서버의 호스트명Path : 접근할 서버의 경로에 대한 상세 정보 URN은 리소스의 위치, 프로토콜, 호스트 등과는 상관없이 각 자원에 이름을 부여하는 것이다. Http Me..
07/29 73일차 Junit JunitJava 진영에서 단위 테스트를 작성할 수 있도록 다양한 애노테이션과 메서드를 지원하는 테스트 프레임 워크입니다. Junit 장점Junit의 GUI를 통해 검증 결과의 목록, 실행된 테스트 메서드 수, 테스트 메서드의 검증 시간, 실패 원인에 대해 알 수 있습니다. 라이브러리만 추가하면 별도의 추가 세팅없이 Junit을 이용할 수 있습니다. 테스트를 수행하는 방식1. 테스트 클래스에서 @Test public void로 정의한 메서드를 모두 찾습니다.2. 테스트 클래스의 오브젝트를 만듭니다.3. Set Up 단계 : @Before 메서드를 수행합니다.4. @Test 단계 : @Test 메서드를 호출하고 테스트 결과를 저장해둡니다.5. tearDown 단계 : @After 메서드를 실행합니다.6. ..