분류 전체보기233 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. (Oracle)Merge Into ~~ 사용법 및 예시 오라클에서 하나의 쿼리문으로 Insert, Update, Delete를 한번에 해야 하는 경우 사용한다. Insert, Update는 9i부터 사용이 가능Delete는 10g부터 사용이 가능 MERGE INTO job_history AS a ('테이블 || 뷰') USING emp AS b ('테이블 || 뷰 || 서브쿼리') ON (a.empno = b.empno) ('조건절') WHEN MATCHED THEN ('일치하는 경우') UPDATE SET a.job = b.job DELETE WHEN NOT MATCHED THEN ('불일치하는 경우') INSERT (a.empno, a.job, a.deptno) VALUES (b.empno, b,job, b.deptno); 단일 테이블 사용법(dual)단.. DataBase/Oracle DB 2023. 4. 18. 비즈니스 로직?? 도메인 로직?? 서비스 로직?? 비즈니스 로직을 분리해라! 비즈니스/도메인 로직은 다른 계층에 의존해서는 안된다! 좋은 설계에 대해 얘기할 때 이런 말을 정말 많이 듣는다. 대충은 무슨 말인지 알겠지만 디테일하게는 이해하고 있지 않았다. 근데 DB에서 특정 조건의 데이터를 가져오는 코드는? 서버에서 가져온 데이터를 파싱하는 코드는? 화폐 단위를 다른 화폐로 바꾸는 코드는? 사용자가 검색한 데이터가 실제로 있는지 확인하는 코드는? 도메인, 비즈니스의 의미 도메인 로직, 비즈니스 로직이라는 말은 거의 동의어처럼 쓰인다. 여기서 눈에 들어오는 것은 '도메인'과 '비즈니스'라는 단어다. 소프트웨어 공학에서 도메인, 비즈니스라는 말은, '소프트웨어가 풀고자하는 현실 세상의 문제'를 가리킨다. 다시 말해 소프트웨어가 존재하는 이유, 목적이다. 은.. Study/팁 2023. 4. 18. [SpringBoot] RequestContextHolder RequestContextHolder는 Spring 컨텍스트에서 HttpServletRequest에 직접 접근 할 수 있도록 도와주는 역할을 한다. 활용 시 HttpServletRequest를 사용하기 위해 이를 메소드 파라미터로 연이어 넘겨받을 필요가 없다. 동작원리ThreadLocal을 사용하여 servlet이 호출되면 key, value(thread, HttpServletRequest)를 보관호출된 servlet과 동일한 thred내에서는 어느 곳에서든 같은 HttpServletRequest를 꺼낼 수 있음servlet이 종료될 때 해당 thread를 key로 갖는 쌍을 제거 HttpServletRequest를 사용하는 경우Parameter로 데이터를 받아 주어야 함@RestController @R.. FrameWorks/Spring & Boot 2023. 4. 13. [ThymeLeaf] fragment를 이용한 insert와 replace 사용 및 활용 Header main.htmlinsert와 replace의 사용 방법은 동일하다.th:insert=”~{해당 파일 경로 :: fragment이름}”해당 태그 안에 fragment를 삽입하는 방법th:replace=”~{해당 파일 경로 :: fragment이름}”해당 태그를 fragment로 대체하는 방법 Main Page 데이터를 넘겨받아 템플릿에서 사용 할 수도 있다.User.javapublic class User { private String name; private int age; public User(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int.. FrameWorks/ThymeLeaf 2023. 4. 13. [JavaScript] ==과 ===의 차이?! ==는 Equal Operator이고, ===는 Strict Equal Operator이다. ==는 a == b 라고 할때, a와 b의 값이 같은지를 비교해서, 같으면 true, 다르면 false라고 한다.(값만 같으면 true이다.) ===는 Strict, 즉 엄격한 Equal Operator로써, "엄격하게" 같음을 비교할 때 사용하는 연산자이다. ===는 a === b 라고 할때, 값과 값의 종류(Data Type)가 모두 같은지를 비교해서, 같으면 true, 다르면 false라고 한다. 값은 똑같이 1이지만 값의 종류가 숫자냐, 문자열이냐에 따라 === 연산자를 사용할 때 결과가 false라고 나온다. var a = 1; var b = "1"; console.log(a == b); // true .. Language/JavaScript 2023. 4. 11. [Java] 개발자라면 알아야 할 Optional class?! Optional 이란?? 우선 Optional을 왜 사용하게 되었는지부터 알아야 한다. Optional은 NPE(NullPointerException)을 피하기 위해 사용한다. public final class Optional { //If non-null, the value; if null, indicates no value is present private final T value; ... } Optional 생성 Optional.empty() - 값이 null인 경우 Optional은 Wrapper 클래스이기 떄문에 값이 없을수도 있는데, 이때 생성하는 방법 Optional optional = Optional.empty(); Optional 클래스 내부에서 static 변수로 객체를 생성해서 미리 가.. Language/Java 2023. 4. 11. [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. 2. UI Challenge 우선 모든 위젯의 생성은 객체 형태로 선언 되지만 Dart언어의 특성상 new라는 예약어의 생략이 가능하여 그렇게 보이지 않을 뿐 착각하면 안된다. 예를들면 아래 코드에서 MaterialApp()이라고 자성되어 있지만,new를 생략하여 안보일뿐 객체를 return하는 것마찬가지로 MaterialApp()안에 home이라는 매개변수에 Scaffold()라는 객체를 new라는 예약어 사용 없이 객체를 생성하고 대입하는 방법return MaterialApp( home : Scaffold( ... ) ) 해당 과정이 중요하고 간과하면 안된다. 대부분의 매개변수는 Null이 허용되며, 디폴트값이 정해져 있다.VScode의 경우 호버로 객체의 생성자의 매개변수를 볼 수 있고,IntelliJ에서는 Command+K와.. FrameWorks/Flutter 2023. 4. 10. 1. Hello Flutter 1-1) Hello World Widget마치 레고 블럭 같은 느낌위젯들을 모두 모아 하나의 웹 페이지를 만듬위젯을 만든다는건 class를 만든다는 것과 비슷 runApp([App()])App이라는 class를 만들어 실행App은 StatelessWidget를 상속받아 build메소드를 구현구현한 build메소드를 CupertinoApp(IOS)와 MaterialApp(Android) 중 return 할 것을 선택커스터마이즈를 하고 싶어도 기본 UI설정과 재료를 선택해 주어야 하기 때문에 선택해야함 scaffold상단 버튼, 중앙 정렬, bottom, tab, bar 등을 해줌 Uploaded by N2T FrameWorks/Flutter 2023. 4. 10. Flutter?? 다른 FrameWork와의 차이점 마치 게임 엔진 처럼 동작함IOS, Android, MacOS, WindowOS와 직접으로 대화하지 않음(크로스 플랫폼이 아님)운영체제는 엔진을 돌리기위해서만 사용함엔진(JVM이라고 생각하면 이해가 쉬움)을 사용해 대화함(C/C++)엔진이 화면을 뿌려줌input, button 등내장된 플랫폼 위젯을 사용하지 않음유저가 앱을 실행시키면 앱은 Flutter 라이브러리를 불러오고 개발자가 만든 모든 UI를 랜더링함모든 UI는 렌더링 엔진에 의해 그려짐배터리표시, 시간, 와이파이 등 네이티브 위젯이 아닌 Flutter가 그린 위젯이므로 똑같지 않음 React Native vs Flutter 최대한 해당 플랫폼(IOS, Android, Mac, Windows …)과 비슷하게 만들.. FrameWorks/Flutter 2023. 4. 10. 이전 1 ··· 7 8 9 10 11 12 13 ··· 20 다음 💲 추천 글 728x90 반응형