프로그래밍공부(Programming Study)99 3. HFC란? HFC(Hybrid Fiber Coaxial)는 광섬유와 동축 케이블을 결합하여 사용하는 통신 기술을 말합니다. HFC는 광섬유 케이블을 사용하여 통신 사업자의 지역센터나 국제망과 케이블 헤드엔드(Cable Head-end) 사이에 대역폭이 큰 광대역망(Wide Area Network, WAN)을 구성하고, 이를 이용하여 지역내의 가입자들에게 동축 케이블을 통한 고속 인터넷, IPTV, VoIP 등 다양한 서비스를 제공합니다. 광섬유 케이블은 대역폭이 매우 크기 때문에, 대량의 데이터를 빠르게 전송할 수 있습니다. 또한, 광섬유 케이블은 방해를 받는 정도가 적기 때문에 안정적인 통신이 가능합니다. 반면, 광섬유 케이블은 동축 케이블에 비해 가격이 비싸므로, 대규모 인프라 구축에는 많은 비용이 필요합니다... 프로그래밍공부(Programming Study)/WithChatGPT 2023. 3. 25. 2. 멀티플렉싱이란? 멀티플렉싱(Multiplexing)은 하나의 통신 채널을 통해 여러 개의 데이터 스트림을 동시에 전송하는 기술을 말합니다. 멀티플렉싱은 다수의 사용자나 장치가 공유하는 네트워크 상에서 대역폭을 효과적으로 사용하기 위해 사용됩니다. 일반적으로 멀티플렉싱은 물리적, 시간적, 주파수적 멀티플렉싱으로 분류됩니다. 물리적 멀티플렉싱: 하나의 물리적 매체(케이블, 광섬유 등)를 여러 개의 채널로 분할하여 사용하는 기술입니다. 예를 들어, TDM(Time Division Multiplexing)은 물리적인 매체를 시간 단위로 분할하여 여러 개의 채널을 만들어 사용하는 방식입니다. 시간적 멀티플렉싱: 여러 개의 데이터 스트림을 하나의 채널에서 시간적으로 번갈아가면서 전송하는 기술입니다. 예를 들어, ATM(Asynch.. 프로그래밍공부(Programming Study)/WithChatGPT 2023. 3. 25. [Docker] 1. 개요 Docker란 컨테이너 기술을 지원하는 다양한 프로젝트 중 하나이며, 컨테이너 기술의 사실상 표준 컨테이너 기반 가상화 플랫폼으로, 애플리케이션을 개발, 배포 및 실행하기 위한 오픈 소스 소프트웨어 애플리케이션과 해당 종속성을 단일 패키지로 묶어서 호스트 운영 체제에서 격리된 환경에서 실행 가능 linux의 ns(namespace)와 cgroups와 같은 커널 기능 사용하여 가상화 Docker를 구성하는 개념/원리 이미지 : 필요한 프로그램과 라이브러리, 소스를 설치한 뒤 만든 하나의 파일 컨테이너 : 이미지를 격리하여 독립된 공간에서 실행한 가상 환경, 가상머신을 사용하여 각 MS(Micro Service)를 격리하는 기술 linux namespace : 각 프로세스가 파일 시스템 마운트, 네트워크, .. 프로그래밍공부(Programming Study)/DevOps 2023. 3. 25. [Docker] 2. 라이프 사이클 Docker Life cycle pull : registry로부터 Image 다운로드 push : image를 Registry에 저장 권한이 필요함 run : pull + create + start pulling이 되어 있는 image는 create + start만 진행 run을 할 때마다 새로운 컨테이너가 만들어짐 run은 반드시 create가 필요한 경우에만 사용 -> create, start 따로 사용하는 게 바람직 stop : 메모리에서 컨테이너가 내려감 rm : 컨테이너 삭제 -> 이미지 삭제는 안됨 rmi : 이미지 삭제 commit : 사용하고 있던 기존 컨테이너를 이미지화 프로그래밍공부(Programming Study)/DevOps 2023. 3. 25. 1. 신입 DevOps 클라우드 컴퓨팅: 클라우드 컴퓨팅은 DevOps에서 매우 중요한 역할을 합니다. 클라우드 서비스 제공업체인 AWS, Azure, GCP 등에서 제공하는 클라우드 기술들을 배우고 이를 통해 인프라 구성, 배포, 모니터링 등을 자동화하는 방법을 익혀야 합니다. 컨테이너: 컨테이너 기술은 애플리케이션을 격리시켜 개발과 운영을 분리하는 데 매우 유용합니다. Docker, Kubernetes 등의 컨테이너 관리 도구를 사용하는 방법을 익혀야 합니다. 자동화 도구: DevOps에서는 인프라 구성, 빌드, 배포, 모니터링 등의 작업을 자동화하는 것이 중요합니다. Ansible, Terraform, Jenkins 등의 자동화 도구를 사용하는 방법을 익혀야 합니다. 소프트웨어 개발: DevOps 신입개발자도 개발에 대한.. 프로그래밍공부(Programming Study)/WithChatGPT 2023. 3. 15. MongoDB 특징 및 설치/환경설정 진행하고 있는 프로젝트에서 mongo DB를 활용한 채팅서버 구현을 위해 Mongo DB 특징을 파악중에 있다. MongoDB 특징 https://inpa.tistory.com/entry/MONGO-%F0%9F%93%9A-%EB%AA%BD%EA%B3%A0%EB%94%94%EB%B9%84-%ED%8A%B9%EC%A7%95-%EB%B9%84%EA%B5%90-%EA%B5%AC%EC%A1%B0-NoSQL [MONGO] 📚 몽고디비 특징 & 비교 & 구조 (NoSQL) MongoDB 란? MongoDB는 문서 지향 데이터 모델(Document DB)을 사용하는 데이터베이스 이다. 이러한 유형의 모델을 사용하면 정형 및 비정형 데이터를 보다 쉽고 빠르게 통합할 수 있다는 장점이 있다. RD inpa.tistory... 프로그래밍공부(Programming Study)/데이터베이스(Database) 2023. 1. 3. 1. 영속성 관리 1. 영속성 컨텍스트 논리적인 개념으로, 엔티티를 영구 저장하는 환경 엔티티매니저를 통해 영속성 컨텍스트에 접근 EntityManager.persist(entity) 영속성 컨텍스트를 통해 영구 저장하겠다 엔티티의 생명주기 비영속(new/transient) : 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 영속(managed) : 영속성 컨텍스트에 관리되는 상태 준영속(detached) : 영속성 컨텍스트에 저장되었다가 분리된 상태 삭제(removed) : 삭제된 상태 영속성 컨텍스트의 이점 1차 캐시 영속성 컨텍스트라고 이해해도 무방함 특정 트랜잭션 찰나의 순간에서만 이득이 있음 (데이터 베이스 트랜잭션 단위로 엔티티매니저를 만듦 ->트랜잭션 후 1차 캐시 날라감[고객 한 명의 비즈니스 로직용]) 동.. 프로그래밍공부(Programming Study)/JPA(Java Persistence API) 2022. 12. 28. 5. 값 타입 1. 기본값 타입 엔티티 타입(Entity Type) @Entity로 정의하는 객체 식별자로 지속해서 추적 가능 값 타입(Value Type) int, Integer, String처럼 단순히 값으로 사용하는 자바 기본 타입이나 객체 식별자가 없고 값만 있으므로 변경시 추적 불가 분류 기본값 타입 자바 기본 타입(Primitive Type) - int, double 래퍼 클래스- Integer, Long String 임베디드 타입(embedded type, 복합 값 타입) 컬렉션 값 타입(collection value type) 기본값 타입 생명주기를 엔티티에 의존 값 타입은 공유하면 안됨 참고 자바의 기본 타입은 공유되지 않음 기본 타입은 항상 값을 복사함 Integer 같은 래퍼 클래스나 String .. 프로그래밍공부(Programming Study)/JPA(Java Persistence API) 2022. 12. 28. 4. 프록시와 연관관계 정리 1. 프록시 em.getReference() : 데이터베이스 조회를 미루는 가짜 엔티티 객체 조회 처음 사용할 때 한 번만 초기화 실제 클래스를 상속 받아서 만들어짐 실제 클래스와 겉 모양이 같음 사용하는 입장에서는 진짜 객체인지 프록시 객체인지 구분하지 않고 사용하면 됨 -> == 비교 시에 true 실제 객체의 참조(target)을 보관 프록시 객체 호출 시 실제 객체의 메소드 호출 주의사항 프록시 객체는 원본 엔티티를 상속 받기 때문에 ==비교가 아닌 instance of 사용 (실무에서 많이 발생)영속성 컨텍스트의 도움을 받을 수 없는 준영속 상태(close/detach/clear)일 때, 프록시 초기화 시 문제 발생 -> 하이버네이트는 org.hibernate.LazyInitializationE.. 프로그래밍공부(Programming Study)/JPA(Java Persistence API) 2022. 12. 28. JPA 공부 개요 JPA에서 가장 중요한 2가지 객체와 관계형 데이터베이스 매핑(Object Relational Mapping) 영속성 컨텍스트 목차 영속성 관리(https://chaaany.tistory.com/229) 엔티티 매핑 연관관계 매핑 프록시와 연관관계 정리(https://chaaany.tistory.com/227) 값 타입(https://chaaany.tistory.com/228) 객체지향 쿼리 언어 문법 쿼리 메소드 기능 명세 Query By Example Projections 네이티브 쿼리 프로그래밍공부(Programming Study)/JPA(Java Persistence API) 2022. 12. 28. MySQL 버전별 차이 토이 프로젝트 개발환경 설정을 위해 MySQL 버전별 차이를 파악해 보았아. https://hinweis.tistory.com/65 MySQL 5.7 VS 8.0 버전 별 성능 비교 (벤치마크) MySQL 공식 홈페이지에서 제공하는 벤치마크 정보입니다. 아래의 결과 값은 벤치마크 프로그램 Sysbench 을 통해 분석된 데이터입니다. 1. I/O 바운드 읽기 전용 MySQL 8.0부터 내림차순 인덱스를 지원 hinweis.tistory.com 아무래도 MySQl 8.0 버전을 채택할 듯 싶다. 프로그래밍공부(Programming Study)/데이터베이스(Database) 2022. 12. 3. 스프링 부트 버전별 특징 토이 프로젝트 환경 설정용 버전별 특징 파악을 해 보았다. https://velog.io/@jh8579/Spring-%EB%B2%84%EC%A0%BC%EB%B3%84-%ED%8A%B9%EC%A7%95 Spring / Spring Boot version별 특징 Spring 3.0부터 Java5가 지원된다.기존에 유지하던 하위호환성에 Generic이나 가변인자(varargs) 등과 같은 개선사항이 추가된다.a) 전체 프레임워크를 하나의 spring.jar 파일로 제공하던 부분을 여러개의 velog.io https://spring.io/blog/2022/03/28/an-update-on-java-17-adoption An update on Java 17+ adoption As a follow-up to my .. 프로그래밍공부(Programming Study)/스프링(Spring Framework) 2022. 12. 3. 이전 1 ··· 4 5 6 7 8 9 다음 728x90