본문 바로가기

느리게 변하는 지식41

커넥터와 트랜시버 커넥터 커넥터는 케이블의 끝부분으로 네트워크 장비나 네트워크 카드에 연결되는 부분입니다. 특히 흔히 볼 수 있는 트위스티드 페어 케이블에서는 RJ-45 커넥터를 사용하지만 광케이블에는 다양한 커넥터가 존재합니다. 하지만 광케이블은 주로 LC 커넥터가 사용되고 SC 커넥터도 일부 사용됩니다. 서버에 광케이블을 사용하는 경우, 네트워크 연결 요청 시 커넥터 타입을 네트워크 담당자에게 알려주어야 적합한 케이블을 사용할 수 있습니다.광 케이블의 추가적인 커넥터로는 ( ST, FC 등..) 이 존재합니다. 트랜시버 트랜시버는 다양한 외부 신호를 컴퓨터 내부의 전기 신호로 바꾸어 줍니다. 트랜시버가 별도로 구분되지 않던 과거에는 다양한 이더넷 표준과 케이블을 만족하기 위해 네트워크 장비나 NIC를 별도로 구매해야 .. 2023. 1. 10.
CDN CDN(Content Delivery Network) 약자 그대로 콘텐츠를 요청한 사용자가 있는 근접한 위치에 있는 서버에서 제공하기 위한 서비스입니다. CDN을 이용하는 목적은 정말 많다고 생각합니다. 원본 서버의 트래픽 감소 빠른 콘텐츠 전송 속도 보장 별도의 캐시 서버 없이 기존 CDN 업체를 이용하면 구축하지 않아도 편리하게 사용 가능 미들 웨어 사용 시 미들웨어의 부담 감소 클라우드 사용 시 원본 서버 트래픽 비용보다 CDN을 활용한 OUTPUT 요금이 더 저렴한 경우가 있기 때문에 비용절감 그래서 다양한 CDN 서비스를 클라우드로 쉽게 설정할 수 있습니다. 그런데 이후 서비스를 사용하기 위해 몇 가지 작업을 해주어야 하는데 이러한 설명은 가이드에도 많이 없습니다. 그래서 적용 시 고려해볼 만한.. 2022. 12. 17.
타임존 오늘은 시간을 표현하기 위한 개념들을 알아볼 것이다. 데이터베이스의 시간을 표현하는 타입이나 프로그래밍 언어에서 시간을 표현하는 타입에 관련된 오류를 맞닥뜨리게 되면 생각보다 사전 지식이 없다면 오류를 찾기가 힘들다. 그래서 오늘은 타임존 도메인 관련해서 지식을 알아보고 PostgreSQL에서 사용되는 두 가지 타입인 timestamp, timestamptz, 그리고 이를 실제 JPA 엔티티에 매핑하고 이를 DTO로 변환해 요청된 포맷과 타임존에 따른 시간을 반환하도록 하는 데 사용되는 jackson 라이브러리와 spring이 제공해주는 @JsonFormat과 @DateFormat에 대해 알아보는 것이 목표이다. 먼길을 가야 하기 때문에 바로 시작해보자. 1. 타임존이란 무엇일까? 타임존은 해당 국가에 .. 2022. 12. 6.
아파치 웹 서버를 리눅스에서 설치할 때 왜 여러 패키지를 받을까? 구글에 아파치 리눅스 설치라고 엔터를 치면 무수히 많은 글과 튜토리얼이 나온다. 해당 블로그에서는 윈도에서 아파치를 설치하는 것과 달리 별도의 여러 패키지를 다운로드한다. gcc make gcc-c++ apr apr-utils expat-devel pcre gcc는 컴파일러였던 거 같기도 하고 다들 해당 패키지를 잘 알고 따라 하는 건가? 그래서 왜 이러한 패키지가 필요한지 각각의 패키지는 무엇을 하는 건지 ec2에는 이미 설치가 되어있는 건지 전부 확인을 해보기로 했다. 기본적으로 아파치가 설치되어 있다면 우리는 그냥 사용한다. 귀찮으니까 근데 사실 보안적으로나 직접 컴파일하여 원하는 디렉터리에 넣거나 부가 작업이 필요한 경우에는 안전한 공식 사이트에서 소스 코드를 받아 컴파일하여 사용하는 것이 좋다... 2022. 11. 12.
데드락 동시성을 이해하기 위해 클린 코드에서 추가 설명하는 데드락에 대해 알아보자. 데드락, 한정된 자원을 여러 곳에서 사용하려고 할 때 모두 작업 수행을 할 수 없이 대기 상태에 놓이는 상태. 개수가 한정된 자원 풀 두개를 공유하는 웹 애플리케이션이 있다고 가정한다. 중앙 저장소 mercurial queue Connection pool 로컬 임시 데이터베이스 Connection pool 애플리케이션의 연산은 두 가지, 생성과 갱신 생성. 중앙 저장소 연결 후 임시 데이터베이스 연결을 얻는다. 중앙 저장소와 통신한 후 임시 데이터베이스에 작업을 저장한다. 갱신. 임시 데이터베이스 연결을 확보한 후 중앙 저장소 연결을 얻는다. 임시 데이터베이스에서 작업을 읽어 중앙 저장소로 보낸다. 여기서 커넥션 풀 크기를 10.. 2022. 8. 4.
CPU 작동 원리 CPU는 트랜지스터라고 하는 반도체로 만들어졌다. 따라서 트랜지스터가 어떻게 작동되는지 알아야 한다. 반도체는 주로 실리콘(si)으로 만들어진다. 그외 저마늄(Ge), 비소화갈륨(GaAs) 등이 사용됩니다. 실리콘은 최 외각전자가 4개로 다른 실리콘 원자들과 전자를 공유하며 결합하고 있습니다. 원자는 최 외각 전자가 8개 일 때 가장 안전한 구조를 이루는데 이렇게 단단하게 결합되어 있으면 전자가 이동할 수 없기 때문에 전류가 흐르지 않게 됩니다. 이처럼 순수한 실리콘은 전류가 통하기 어려운데 실리콘보다 전자가 하나 많거나 하나 적은 원소를 첨가해 전류를 통하게 만들어 줍니다. 전자가 하나 부족한 원소를 넣으면 우리가 양공이라고 부르는 빈 구멍이 하나 생깁니다. 양공을 채우기 위해 전자가 이동할 수 있는데.. 2022. 4. 8.
Lean 소프트웨어 개발 린 소프트웨어 개발 방법론은 도요타자동차에서 하드웨어 제품 생산의 낭비를 줄이기 위해 개발된 린의 개념을 소프트웨어 개발에 적용하기 위해 탄생했다. 린의 의미는 “낭비를 제거한”이라는 뜻으로 최고의 효율성을 내기위한 방법론이라고 생각해도 될 것이다. 생각해보자 소프트웨어 개발에 낭비를 줄일 수 있는 방법일 것이다. 린 소프트웨어의 개발 원칙은 다음과 같다. Amplify Learning 지식을 창출한다. 소프트웨어 개발하는 과정을 학습의 관점으로 본다. 개발을 통해 고객의 요구사항을 이해하고 문제를 해결하는 현재의 개발 방법이 적합한지 학습해야 한다. 고객과의 소통을 통해 도메인을 파악할 수 있고, 전체 최적화 관점에서는 개별 프로세스를 이해해야 개별 프로세스의 불필요한 낭비를 찾아 수정할 수 있다. 만.. 2022. 4. 5.
소프트웨어 개발 방법론 소프트웨어 시스템을 개발하거나 유지 보수할 목적으로 수행되는 활동 일체 또는 절차를 의미한다. 회사 내부의 개발 조직은 적당한 프로세스 모델을 보유하고 진행한다. 프로세스 모델이 존재하는 경우 전체 프로세스 이해에 도움을 주며 방법이 구조화되고 자원 사용에 대한 사전 계획 및 통제가 가능하며 시스템 개발 과정을 추적하고 관리할 수 있다. 프로세스 모델을 선택 시 고려 사항 - 조직마다 프로세스 모델이 다름 - 프로젝트 유형에 따라 적절한 모델이 다름 - 대형 시스템의 경우 부분마다 다른 프로세스 모델이 적용될 수 있음 소프트웨어 공학은 카네기 멜론 대학의 연구소 홈페이지에 있는 모토와 구글의 정의는 다음과 같다. The right softwere, delivered defect free, on t ime.. 2022. 4. 5.
객체지향 설계 기법 객체지향의 사실과 오해를 읽다가 재밌게 읽은 부분을 발췌해 적어보려 한다. 읽던 파트는 객체지향 설계 기법이다. 언젠간 나에게도 애플리케이션 설계할 수 있는 기회가 올지 모른다. 객체의 역할, 책임, 협력이 얼마나 견고하고 유연한 객체지향 설계를 하기 위한 중요한 토대라는 것을 계속 강조했다. 하나의 협력안에서 객체가 어떤 역할을 가져야 하고 그 역할을 수행하기 위한 책임이 무엇인가? 이 순서로 객체지향을 설계해달라고 외치는 책이었다. 이제 과거 선배 개발자들은 어떠한 고민 끝에 "기법"이라는 방법을 만들었는지 구경할 차례가 왔다. 1. 책임-주도 설계 (Responsibility-Driven Design) 협력에 필요한 책임들을 식별하고 적합한 객체에게 책임을 할당하는 방식으로 애플리케이션을 설계한다... 2022. 3. 15.
HTTP Redirection HTTP의 상태 코드 중 3xx대의 상태 코드는 요청을 완료하기 위해 유저 에이전트의 추가적인 조치가 필요하다는 의미를 가진다. 300 Multiple Choices 301 Moved Permanently 302 Found 303 See Other 304 Not Modified 307 Temporary Redirect 308 Permanent Redirect 웹 브라우저는 3xx 응답의 결과에 Location 헤더가 있으면 Location 위치로 자동 이동시킵니다. 만약 기존 url을 통해 웹 서비스를 제공했는데, 시간이 지나고 해당 url을 폐지하고 신규 url을 사용해 웹 서비스를 제공한다고 하면, 기존 유저들은 해당 url을 북마크 한 후 사용되지 않는 url로 접근할 수 있습니다. 이 경우 서버에.. 2021. 12. 6.