Study52 OSI 7계층 TCP/IP 4계층 OSI 7 계층이란?OSI 7 계층은 네트워크 통신이 일어나는 과정을 7단계로 나눈 국제 표준화 기구(ISO)에서 정의한 네트워크 표준 모델아래 그림에서 아래부터 1계층(물리 계층) ~ 7계층(응용 계층)으로 구성되어 있다.또 그림과 같이 각 계층을 지날 때마다 각 계층에서 Header가 붙게되고 수신측은 역순으로 헤더를 분석하게 된다. 🌱 1계층 - 물리계층(Physical Layer)주로 전기적, 기계적, 기능적인 특성을 이용해서 통신 케이블로 데이터를 전송하는 물리적인 장비단지 데이터 전기적인 신호(0,1)로 변환해서 주고받는 기능만 할 뿐이 계층에서 사용되는 통신 단위 : 비트(Bit)이며 이것은 1과 0으로 나타내어지는, 즉 전기적으로 On, Off 상태장비 : 통신 케이블, 리피터, 허브 등 .. Study/팁 2023. 4. 24. Maven Maven이란??프로젝트의 전반적인 라이프사이클을 관리하는 도구프로젝트 객체 모델(Project Object Model : POM)이라는 개념을 바탕으로 프로젝트의 의존성, 라이브러리, 라이프사이클 관리 기능 등을 제공하는 프로젝트 관리 도구 프로젝트 객체 모델 POM 4.0.0 egovframework.dev.com egovframework-dev-com 1.0 war egovframework-dev-com Maven Webapp junit junit 4.4 test org.apache.maven.plugins maven-compiler-plugin 1.5 1.5 메이픈 레파지토리 Repositoryartifact 들의 저장소로컬 및 리모트로 구성되며 프로젝트는 pom.xml에서 선언한 dependen.. Study/Tool 2023. 4. 19. 비즈니스 로직?? 도메인 로직?? 서비스 로직?? 비즈니스 로직을 분리해라! 비즈니스/도메인 로직은 다른 계층에 의존해서는 안된다! 좋은 설계에 대해 얘기할 때 이런 말을 정말 많이 듣는다. 대충은 무슨 말인지 알겠지만 디테일하게는 이해하고 있지 않았다. 근데 DB에서 특정 조건의 데이터를 가져오는 코드는? 서버에서 가져온 데이터를 파싱하는 코드는? 화폐 단위를 다른 화폐로 바꾸는 코드는? 사용자가 검색한 데이터가 실제로 있는지 확인하는 코드는? 도메인, 비즈니스의 의미 도메인 로직, 비즈니스 로직이라는 말은 거의 동의어처럼 쓰인다. 여기서 눈에 들어오는 것은 '도메인'과 '비즈니스'라는 단어다. 소프트웨어 공학에서 도메인, 비즈니스라는 말은, '소프트웨어가 풀고자하는 현실 세상의 문제'를 가리킨다. 다시 말해 소프트웨어가 존재하는 이유, 목적이다. 은.. Study/팁 2023. 4. 18. [Vim] Plugin 설치 및 default 환경설정 Vundle 설치 방법 우선 아래 주소를 clone하여 vundel을 설치해준다. git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim 설치 후 .vimrc를 만들어 주어야 한다. vi ~/.vimrc 만들어진 .vimrc에 아래 문장을 입력 set nocompatible " be iMproved, required filetype off " required set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() " let Vundle manage Vundle, required Plugin 'gmarik/Vundle.vim' call vundle#end() " required f.. Study/팁 2023. 4. 11. 팩토리 메서드(Factory Method Pattern) 팩토리 메서드(Factory Method Pattern)객체를 생성할 때 어떤 클래스의 인스턴스를 만들 지 서브 클래스에서 결정하게 함인스턴스 생성을 서브 클래스에게 위임부모 추상 클래스는 인터페이스에만 의존하고 실제로 어떤 클래스를 호출할 지는 서브 클래스에서 구현새로운 구현 클래스가 추가되어도 기존 Factory코드의 수정 없이 새로운 Factory를 추가하면 됨ex) 컴퓨터를 예로 들면 키보드, 마우스, 모니터, 스피커 등을 다 따로따로 만들어주는 방법예제) 사용자 관리 프로그램이 있고 네이버 계정으로 가입할 수 있다고 가정1. Product(User)public interface User { void signup();}User 인터페이스 정의public class NaverUser imple.. Study/디자인패턴 2023. 4. 4. 싱글턴(Singleton Pattern) 싱글턴(Singleton Pattern)특정 클래스에 객체 인스턴스가 하나만 만들어지도록 해주는 패턴전역 변수를 사용할 때와 마찬가지로 객체 인스턴스를 어디서든지 액세스 할 수 있게 만들 수 있음public static final 필드외부에서 객체를 생성할 수 없도록 생성자를 private로 접근 범위를 제한이미 할당했는데 싱글턴 내부에서 다시 객체를 할당하는 실수가 없도록 final로 선언public class Singleton{ public static final Singleton INSTANCE = new Singleton(); private Singleton(){} ...}//또는public class Singleton{ public static final Singleyon .. Study/디자인패턴 2023. 3. 28. CORS(Cross Origin Resource Sharing)란?? CORS(Cross Origin Resource Sharing)브라우저의 보안과 관련하여 중요한 일들을 수행브라우저가 자신이 보낸 요청 및 서버로부터 받은 응답의 데이터가 CORS정책을 지키는지 검사하여 안전한 요청을 보낸 건지 검사 Origin프로토콜, 도메인, 포트번호를 합친 부분ex) URL : https://it-eldorado.com:80/posts/123456?data=789#abc Origin : https://it-eldorado.com:80 SOP(Same Origin Policy)동일 출처 정책다른 Origin으로 요청을 보낼 수 없음 CORS(Cross Origin Resource Sharing)교차 출처 자원 공유‘브라우저’의 정책다른 Origin으로 요청하기위해 지켜야하는 정책SO.. Study/Network 2023. 3. 25. GitHub 레파지토리 병합(잔디유지시키기) 작성 이유 근례에 1일 1커밋을 목표로 하던 와중에 쓸데없이 Repository가 많아져 이것을 한곳에 몰아 넣기 위해 알아보게 되었다. 시작 1. First 우선 새로운 레파지토리를 GitHub에서 생성해준다. (이미 완성하고 블로그를 작성하기에 같은 이름으로 만들어지지 않는다...ㅋㅋ;) 2. Second 만든 Repository의 주소를 복사한다. 3. Third 다음 명령어를 터미널에 입력해준다. git init git clone '복사한 주소' git remote add origin '복사한주소' git add . git commit -m "아무 메세지" 4. Fourth 병합하고자하는 Repository의 주소를 복사해 아래 명령어를 작성한다. git subtree add --prefix='기.. Study/Git & GitHub 2023. 3. 24. Kakao Login/Register 사용법 구현 코드//카카오로그인 function kakaoLogin() { //로그인 요청(회원가입) Kakao.Auth.login({ success: function (response) { //회원 정보 가져오기 Kakao.API.request({ url: '/v2/user/me', success: function (response) { $.ajax({ url:'/user/kakaoLogin', type: 'post', data: { 'user_name' : response.properties.nickname, 'user_id' : response.id, 'user_birthday' : response.kakao_account.birthday }, success: function(result){ console.. Study/API사용법 2023. 3. 10. VScode에서 Git 자동 로그인 터미널에 해당 명령어 입력 1 2 git config --global user.name "사용자이름" git config --global user.email "이메일" cs Study/Git & GitHub 2023. 3. 7. Git / GitHub에서 Repository 잠금(Push, Merege 불가능하게 만들기) 간략 정리 Setting -> Branch -> add rules -> Require a pull request before merging(체크) -> create 해당 Repository를 생성한 user만 Push pr Merge할 수 있게 된다. cf. Lock을 체크할 경우 Read-Only로 변경됨 세부 정리 1. GitHub에 접속하여 잠그려는 Repository를 클릭 후 Settings에 들어간다. 2. 사이드바 메뉴에 Branch를 클릭한다. 3. Branch protection rules에서 Add Rules를 클릭한다. 4. 잠금하려는 Branch 이름을 작성 후 맨 위의 Require a pull request before merging에 체크 한 후 Create 버튼을 클릭한다. Study/Git & GitHub 2023. 2. 20. 마우스 따라다니는 텍스트 만들기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 HTML: Move your mouse over me! jQuery: $(document).mousemove(function(event) { $("#text").css({ left: event.pageX, top: event.pageY }); }); CSS: #text { position: absolute; } Colored by Color Scripter cs Study/팁 2023. 2. 1. 이전 1 2 3 4 5 다음 💲 추천 글 728x90 반응형