분류 전체보기
-
[Network] 전달한 패킷이 네트워크 장치가 수용할 수 있는 크기보다 크다면? (MTU, MSS, PMTUD)Network Basis 2025. 1. 18. 20:23
들어가기전에OSI 7 Layer 의 2계층인 Data Link Layer 에서는 Ethernet 프로토콜을 사용한다. 네트워크 장치들이 모두 OSI 7계층 모델을 사용하는 것은 아니지만, 네트워크 통신을 수행하는 장치들은 OSI 모델의 계층 중 일부를 사용하거나 참고한다. LAN(Local Area Network)을 구성하기 위해 네트워크 카드(NIC), 스위치, 라우터, 허브, 액세스 포인트 등과 같은 네트워크 장치가 사용되는데, 이러한 네트워크 장치를 통하여 데이터가 전달된다. 우리는 전송할 데이터를 쪼개어 전송하게 되는데 쪼개어진 데이터를 *패킷이라고 칭하며, 일반적으로 패킷의 크기가 클수록 대역폭(Bandwidth)을 효과적으로 사용할 수 있다. 난 효율적인게 좋아!우리집 인터넷은 1Gbps ..
-
[Network] 노드와 네트워크 장치, 링크와 회선Network Basis 2025. 1. 17. 17:53
1. 노드 (Node)정의:데이터를 생성하거나 소비하는 장치예시:클라이언트 노드: 컴퓨터, 스마트폰, IoT 기기 등서버 노드: 웹 서버, 데이터베이스 서버기타 노드: 네트워크 프린터, NAS(Network Attached Storage), IoT 센서특징:일반적으로 데이터의 생성 또는 최종 소비를 담당사용자가 직접 상호작용하는 장치가 많음 2. 네트워크 장비 (Network Device)정의:노드 간의 데이터 흐름을 관리하고 최적화하는 데 사용되는 장치자체적으로 데이터를 생성하거나 소비하지는 않지만, 데이터를 전달하거나 처리하는 데 중요한 역할을 수행예시:스위치(Switch): LAN(Local Area Network)에서 데이터를 전달라우터(Router): 서로 다른 네트워크 간 데이터 전송을 관리허..
-
[Spring] 트랜잭션에 대한 실험과 고찰 (Self-invocation, 프록시가 메서드를 실행하기까지의 과정)Back End/Spring Framework 2024. 12. 1. 21:36
[Spring] 예외 발생시 Spring DB 트랜잭션 롤백 안되는 경우배경지식Checked Exception 은 개발자가 인지한 예외라 약속한다.Unchecked Exception 은 개발자가 인지하지 못한 예외라 약속한다.try-catch 문에서 catch 된 Exception 은 개발자가 인지한 예외라 약속한다.스프developer-ping9.tistory.com Spring DB 트랜잭션의 롤백 유무에 대해 정리하다가 프록시 객체가 언제 생성되는지, 어떤 원리로 만들어지는지 고찰을 하기 위해 여러 실험을 진행해보았다. 다른 블로그 글을 읽어도 이해가 잘안되고, 블로그마다 말이 좀 다른게 있어 쉽게 믿을 수가 없었다. 무엇보다 제일 궁금했던 점은 프록시가 나의 서비스클래스를 상속받아서 만들어지는지,..
-
[Spring] 예외 발생시 Spring DB 트랜잭션 롤백 안되는 경우Back End/Spring Framework 2024. 11. 27. 18:44
배경지식Checked Exception 은 개발자가 인지한 예외라 약속한다.Unchecked Exception 은 개발자가 인지하지 못한 예외라 약속한다.try-catch 문에서 catch 된 Exception 은 개발자가 인지한 예외라 약속한다.스프링은 개발자가 인지한 예외에 대해서는 기본적으로 롤백을 진행하지 않는다.예외가 발생한 메서드의 Propagation 레벨이 Required(default) 가 아니면 부모트랜잭션은 롤백되지 않는다.프록시가 Self invocation 을 시도할 경우 경우에 따라 트랜잭션이 롤백되지 않을 수 있다. [Spring] 트랜잭션에 대한 실험과 고찰 (Self-invocation, 프록시가 메서드를 실행하기까지의 과정)[Spring] 예외 발생시 Spring DB 트..
-
[MySQL] DB에 이상한 데이터가 있어요! (MySQL Strict mode)DBMS/MySQL 2023. 10. 2. 18:02
발단 데이터 중에 누가봐도 이상한게 있었다. 테스트 데이터겠지, 그 때 어플리케이션 코드가 이상했겠지로는 설명이 안되는 최신데이터로 말이다. MySQL Strict Mode MySQL 5.7 이상 버전들은 Strict Mode 가 기본설정이지만, 그 이하 버전들은 Strict Mode 가 꺼져있다. Strict Mode 가 꺼져있다면 에러가 나야 할 쿼리들이 에러 없이 실행된다. varchar(4) 로 설정했지만 10글자의 String 을 INSERT 문으로 작성하여도 성공적으로 실행된다. 아래 포스팅에 잘 설명되어 있으니 참고하자. MySQL Strict mode 끄기/켜기 MySQL 5.7 부터는 STRICT_MODE 가 기본 설정이라고 하니 별도의 설정 작업이 필요없다. www.lesstif.com..
-
[테스트코드] Test Fixture 로 *.sql 파일을 사용해도 될까?Back End/테스트코드 2023. 10. 2. 17:12
Test Fixture 세팅 회사에서 레거시 SSR 프로젝트를 FE/BE 가 각각 작업할 수 있도록 분리한적이 있었다. 해야할 일이 너무나도 많았다. View 에서 필요한 API 들의 목록을 정리 및 새롭게 작성 언어를 Java 에서 Kotlin 으로 변경 Spring Framework 5 에서 Spring Boot 2.7.3 으로 변경 JPA, Security 환경 세팅 모든 API 에 대한 독립 인수테스트 작성 코드 리팩토링 대충 위와 같은데, Kotlin 을 처음 다뤄보던 시기라 환경설정부터 Java 와 다르게 동작하는 경우가 잦았다. 시간의 압박때문에 타협을 본 것 중 하나가 Test Fixture 를 *.sql 파일을 이용하여 작성하였다는 것이다. @Sql( value = [ "classpath..