OSI 7계층과 TCP/IP 4계층
·
CS/Computer Network
국제 표준화 기구인 ISO가 확립한 OSI 7계층은 개방화된 데이터 통신 환경에서 사용하는 계층적 구현 모델의 표준으로, 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 의미합니다. 이렇게 OSI 7계층을 나눈 이유는 여러대의 컴퓨터가 데이터를 주고 받으려면 이들을 서로 연동할 수 있도록 표준화된 인터페이스를 지원해야하기 때문입니다. 또한 계층을 나누면 나중에 특정한 문제가 발생했을때 다른 계층은 건들지 않고 문제의 원인인 해당 계층에 대해서만 문제를 해결할 수 있기 때문입니다. OSI 계층의 구성은 물리, 데이터링크, 네트워크, 전송, 세션, 표현, 응용계층인 총 7계층으로 이루어져 있습니다. 이를 계층별로 상세하게 설명하면 다음과 같습니다. 물리 계층 물리적 선로로 전송하기 위해서 전기적 신호..
React - useState
·
Web/React & Next.js
컴포넌트에서 동적인 값을 상태(state)라고 부른다. 리액트에서는 useState라는 함수가 있는데 이걸 사용하면 컴포넌트에서 상태를 관리할 수 있다. useState를 사용하면 상태의 기본 값을 파라미터로 넣어서 호출해준다. 이 함수를 호출해주면 배열이 반환되는데 첫번째 원소는 현재 상태, 두번째 원소는 setter이다. import React, {useState} from 'react'; function Counter(){ //useState()안의 인수는 상태의 기본값을 뜻합니다. const [number, setNumber] = useState(0); const onIncrease = () =>{ setNumber(prevNumber => prevNumber + 1); } const onDecr..
React - 조건부 렌더링
·
Web/React & Next.js
조건부 렌더링이란? 특정 조건이 참인지 거짓인지에 따라서 다른 결과를 보여주는 것 import React from 'react' import Hello from './Hello' import Wrapper from './Wrapper' function App() { return ( ); } export default App; import React from 'react'; function Hello({color, name, isSpecial}){ return {isSpecial ? '스페셜하다!' : '낫스페셜'} 안녕하세요 {name} ; } Hello.defaultProps = { name : '이름없음' }; //Hello라는 Component를 만들어서 내보내 주겠다 export default H..
React - {children}
·
Web/React & Next.js
import React from 'react'; function Wrapper({children}){ const style={ border: '2px solid black', padding : 16 }; return {children} } export default Wrapper; import React from 'react' import Hello from './Hello' import Wrapper from './Wrapper' function App() { return ( ); } export default App; {children}이라는 prop은 태그와 태그 사이의 내용을 넣을때 주로 쓰임. 즉 자식 컴포넌트를 줄 때 사용하는 prop 벨로퍼트님의 리액트 강의를 듣고 정리하였습니다.
React - defaultProps
·
Web/React & Next.js
import React from 'react'; function Hello({color, name}){ return 안녕하세요 {name}; } Hello.defaultProps = { name : '이름없음' }; //Hello라는 Component를 만들어서 내보내 주겠다 export default Hello; import React from 'react' import Hello from './Hello' function App() { return ( ); } export default App; defaultProps은 기본 값으로 셋팅해주는 prop, prop을 따로 지정해주지 않으면 기본값으로 설정해둔 prop이 전달된다.
JVM의 구조와 자바의 구동 원리
·
Language/Java
일반 프로그램은 운영체제가 프로그램을 실행시키는 반면, 자바 프로그램은 운영체제가 JVM을 실행시키면 JVM이 프로그램을 실행시킵니다. 여기서 JVM이란 자바 가상머신으로, 자바 프로그램의 클래스 파일들은 운영체제에서 직접 동작하는게 아니라 이 JVM위에서 동작하는데요. 이로 인해 운영체제에 적합한 JVM을 설치하기만 한다면 자바 프로그램은 어떤 운영체제에서든 실행 시킬 수 있습니다. 이 JVM의 구조는 크게 Class Loader, GC, Execution Engine, Runtime Data Area로 나눠집니다. Class Loader에 대해 먼저 설명해보자면 java컴파일러(javac.exe)가 .java파일을 컴파일 하면 .class파일(바이트코드)이 생성됩니다. 이렇게 생성된 클래스 파일들을 ..
Spring - @Autowired와 빈 객체 탐색 순서
·
Spring
@Autowired란? @Autowired는 의존성의 "타입"을 통해 찾아 주입해주는 역할을 수행하며, 생성자, setter, 필드에서 사용할 수 있다. 예컨대, @Service public class FoodService{ @Autowired private FoodRepository foodRepository; } 이렇게 사용하면 타입을 이용해 의존 대상 객체를 검색하고 할당할 수 있는 빈 객체를 찾아 주입해준다. 그런데 여기서 동일한 interface를 구현한 여러개의 클래스가 있다면? 예를 들면, @Repository public interface FoodRepository{ } @Repository public class BestFoodRepository implements FoodReposito..
스프링- 스프링 Bean, 생성과정과 스코프
·
Spring
1. Spring Bean이란? Spring bean이란 Spring Ioc Container가 관리하는 자바 객체로 Container에 의해 생명주기가 관리되는 객체를 의미한다. 이 bean은 설정 메타 데이터(xml)에 의해 생성이 되기 때문에 일반적으로는 java코드 내에서 작성하지 않는다. 메타 데이터 파일에서 객체를 생성하면 해당 객체는 ApplicationContext.getBean()메소드를 사용하여 가져올 수 있다. IceCreamController iceCreamController = new IceCreamController(); //직접 생성한 객체는 bean이 아님 IcemCreamController bean = applicationContext.getBean(IceCreamContr..
스프링 - IOC와 DI
·
Spring
IOC(Inversion of Control)이란? Inversion Of Control이란 '제어의 역전'을 의미한다. 자바 초창기에는 자바객체를 생성하고 객체간의 의존관계를 연결하는 등의 제어권이 오롯이 개발자 본인에게 있었지만, 서블릿등이 등장하면서 개발자의 제어권이 서블릿과 EJB를 관리하는 외부 컨테이너로 넘어갔고 객체의 생성부터 생명주기의 관리까지 모든 객체에 대한 제어권이 프레임워크로 바뀐 것을 IOC, 제어의 역전이라고 한다. 일반적인 객체지향 프로그램에서는 객체를 사용하는 시점에 직접 객체를 생성하여 사용한다. 그러나 소스코드상에서 직접 하드 코딩한 객체 생성은 객체간의 의존성을 심화하고 객체간의 결합도를 높아지게 하는 현상을 띠게 하는데 이러한 경우 객체 생성에 있어서 특정 클래스가 변..
takoyummy
TakoHub