본문 바로가기

CS 전공지식

(50)
24.02.28 오늘의 일기 (개발자 면접 준비 CS 복습) 내일 29일에는 개발자 면접이 예정되어있다 그래서 오늘은 면접 준비로 지금까지 공부했던 것과 포트폴리오에 있는 프로젝트 복습을 다시해보았다 지금와서는 개발을 한지 오랜 시간이 지난터라 잘생각도 나지 않고해서 코드를 다시 확인했고 면접에 나올만한 질문들을 복습해보았다 사실 크게 자신은 없지만.. 그래도 면접을 잘 볼 수 있으면 좋겠다!
24.02.22 Spring IoC 컨테이너 (Inversion of Control) 1. IoC (제어반전) - 객체의 생성, 생명주기의 관리까지 모든 객체에 대한 제어권이 바뀌었다는 것을 의미 - 컴포넌트 의존관계 설정, 설정 및 생명주기를 해결하기 위한 디자인 패턴 2. IoC 컨테이너 - 스프링 프레임워크도 객체를 생성하고 관리하고 책임지고 의존성을 관리해주는 컨테이너가 있는데 이것이 바로 IoC 컨테이너(=스프링 컨테이너) 이다 * 컨테이너 : 보통 객체의 생명주기를 관리, 생성된 인스턴스들에게 추가적인 기능을 제공하도록 하는 것 - 인스턴스 생성부터 소멸까지의 인스턴스 생명주기 관리를 개발자가 아닌 컨테이너가 대신 해줌 - 객체 관리 주체가 프레임워크(Container)가 되기 때문에 개발자는 오직 로직에 집중할 수 있는 장점 1) IoC 컨테이너는 객체의 생성을 책임지고 의존..
24.02.20 백엔드 관련 1. WAS (Web Apllication Server) 와 WS (Web Server) 의 차이 1) WAS (Web Apllication Server) - 비즈니스 로직을 넣을 수 있다 - Tomcat, PHP, ASP, .NET 등 2) WS (Web Server) - 비즈니스 로직을 넣을 수 없다 - Nginx, Apache 등 2. Spring Freamwork - 자바 개발을 편리하게 해주는 오픈소스 프레임워크 1) 특징 (1) 경량 컨테이너로서 자바 객체를 직접 관리 - 각각의 객체 생성, 소멸과 같은 라이프 사이클을 관리하며 스프링으로부터 필요한 객체를 얻어올 수 있다 (2) 제어의 역전 (IoC) 라는 기술을 통해 어플리케이션의 느슨한 결합 도모 - 컨트롤의 제어권을 사용자가 아닌 프레임..
24.02.16 웹과 통신 1. HTTP 요청 흐름 (웹브라우저에서의 요청) 1) 브라우저 - URL 에 적힌 값을 파싱하여 HTTP 요청 메세지를 만듬 - 만든 메세지를 웹 서버로 전송하는데 이때 웹 브라우저 직접 전송을 하는 것이 아니라 OS에 보내주세요 하고 의뢰함 - OS 는 DNS 서버를 조회하여 Host 이름을 보내야 할 IP 주소로 변환 2) 프로토콜 스택(운영체제에 내장된 네트워크 제어용 소프트웨어 TCP / IP 계층) 과 LAN 어댑터 - 브라우저로부터 메세지를 받아 패킷 속에 저장 - 수신 주소를 제어정보에 덧붙인 다음 패킷은 LAN 어댑터에 넘김 - LAN 어댑터는 패킷을 전기신호로 변환시켜 LAN 케이블에 송출 3) 허브, 스위치, 라우터 - LAN 어댑터로부터 송신한 패킷 수신 - 라우터는 패킷을 ISP ..
24.02.15 Spring 및 웹개발 1. Spring MVC 에서의 컴포넌트 1) MVC 패턴 - 모델, 뷰, 컨트롤러의 약자로 디자인패턴의 하나 - 비지니스 처리 로직과 사용자 인터페이스를 구분시켜 서로 영향없이 개발이 가능하다는 장점 (1) Model - 어플리케이션이 무엇을 할지에 대해 정의 - 처리되는 데이터, 데이터베이스, 내부 알고리즘 등 내부 비즈니스에 관한 로직의 처리를 수행 - 즉, 사용자에게 보이지 않는 로직 - Spring 에서는 JavaBean 이 해당됨 (2) View - 말 그대로 사용자에게 보여지는 영역 - Spring 에서는 JSP 등 사용자 인터페이스 (3) Controller - 모델에게 어떻게 할것인지를 알려주며 모델과 뷰 사이를 연결하는 역할 - 사용자의 입출력을 받아 데이터 처리 - Spring 에서는..
24.02.14 웹, 네트워크 관련 1. 쿠키와 세션 1) 쿠키 - 클라이언트의 로컬에 Key - Value 쌍이 String 형태로 저장되는 데이터 파일 - 브라우저가 종료된 후에도 상태가 유지됨 - 클라이언트의 상태 정보(이름, 값, 만료 날짜 및 시간, 경로정보)를 포함 - 클라이언트 로컬에 저장되므로 보안에 취약해 로그인 같은 인증에 잘 쓰이지 않음 - 단순한 아이디의 저장이나 쇼핑몰의 장바구니 담아두기 같은 기능에 사용 2) 세션 - 일정 시간 같은 클라이언트로부터 들어오는 일련의 요청을 하나의 상태로 보고, 그 상태를 유지하는 기술 - 브라우저가 종료되기 전까지 상태가 유지 - 상태 유지 수단으로 쿠키를 사용하지만, 사용자 정보를 클라이언트 로컬이 아닌 서버측에서 관리 - 보안상 중요한 작업인 로그인 기능에 사용 3) 쿠키와 세..
24.02.13 Java 관련 4 1. try catch - 예외가 발생할 수 있는 부분을 try 블럭에 넣고 예외가 발생시 catch 블럭에서 처리하는 방법 1) 유의 사항 - try catch 문을 통해 예측 가능한 예외를 처리해주는 것도 중요하지만 예외 발생시 try 블럭내의 나머지 코드들이 수행되지 않는 다는 점을 유의해서 코드를 작성해야 함 - 모든 예외는 Exception 클래스의 자손이기에 catch 블럭 최상단에 Exception 을 선언하면 어떤 에러든 해당 catch 블럭에서 처리됨 2. throw exception - 의도적으로 예외를 발생시키는 것으로 특정 로직에서 특정 예외를 상위 클래스에서 공통으로 예외 처리를 하기 위해 사용 3. String - 불변성을 가진 객체 - + 나 문자열을 수정, 삽입하는 경우 새로..
24.02.07 Java 관련 3 1. 절차지향 프로그래밍 - 실행하고자 하는 절차를 정하고 이 절차대로 프로그래밍하는 방법 - 개체를 순차적으로 처리하여 프로그램 전체가 유기적으로 연결되어야 한다 1) 장점 - 절차지향언어의 구조는 컴퓨터의 처리구조와 유사하므로 실행 속도가 빠르다 2) 단점 - 모든 프로그래밍이란 순차적으로 실행되어야 하며, 한군데에서 오류가 발생시 찾기도 어렵고 서로 유기적으로 연결되어 있기 때문에 부분 오류가 전체 수정으로 이루어질 수 있다 - 코드의 순서가 있어야하기 때문에 융통성이 부족하여 생산성이 떨어짐 2. 객체지향 프로그래밍 (OOP) - 연관되어 있는 변수와 메서드를 하나의 그룹으로 묶어 클래스(개념)를 구현하고 이들 사이의 상호 작용을 프로그램으로 나타낸 것 - 프로그래밍에 필요한 데이터의 상태와 행위..
24.02.07 Java 관련 2 1. GC - 가비지 컬렉터란, 힙 메모리 관리를 위해 참조되고 있지 않은 객체들을 메모리에서 삭제하는 역할 - 객체는 힙영역에 저정되고 스택 영역에 이를 가르키는 주소값이 저장되는데 힙영역에서 자신을 가르키는 주소값이 없으면, 참조되고 있지 않는다고 판단 1) GC 동작 과정 - 객체가 생성되면 메모리를 young 영역에 저장 - 객체를 최초 생성하면 Young 영역에 Eden 영역에 위치 - Eden 영역에서 Minor GC 가 발생하면 참조 중인 객체는 1번 Survivor 영역으로 이동 - 1번 Survivor 영역에서 Minor GC 가 발생하면 참조 중인 객체는 2번 Survivor 영역으로 이동하고 1번 Survivor 영역은 비게 됨 - Young 영역에서 오래 살아남은 객체는 Old 영역..
24.02.06 Java 관련 1 1. Java 란? - 객체 지향적 프로그래밍 언어 (OOP) 이다 - OOP 란 프로그리맹에 사용될 데이터 상태와 행위를 객체로 만들어, 객체간의 상호작용을 통해 비지니스 로직을 구성하는 프로그래밍 기법 2. Java 의 특징 - JVM 을 이용하기 때문에 운영체제에 독립적 - 객체지향언어이기 때문에 캡슐화, 상속, 다형성, 추상화의 특징을 가짐 - 컴파일시 데이터 타입이 결정되는 정적 타입 언어 - 컴파일 언어와 인터프린터 언어 2가지 동작방식을 복합적으로 사용하는 하이브리드 언어라고 불리기도 함 - GC 를 지원 3. Java 접근 제어자 - 클래스, 인터페이스, 멤버변수, 함수 등의 접근을 제어하는 지시어를 말함 - 접근제어자를 사용함으로써, 외부 객체의 무분별한 접근으로부터 내부 데이터를 보호할..