Study/Computer Science(10)
-
[면접대비] 리눅스
기술면접시, 리눅스 관련 질문들을 많이 받아 기본적인 학습을 할 생각이다. ▶ 리눅스란? ✔ 유닉스 계열의 운영체제 ▶ 리눅스를 왜 사용할까? ✔ 리눅스는 오픈소스 운영체제로서 소스 코드를 자유롭게 수정하고 배포할 수 있습니다. 이로 인해, 보안성과 유연성이 뛰어난 것이 특징입니다. 또한, 서버 환경에서 많이 사용됩니다. ▶ Inode란? ✔ 파일 정보가 담긴 특별한 구조체 ▶ 링크와 복사의 차이? ✔ 링크는 같은 파일에 이름만 다르게 붙이는 것 ✔ 복사는 완전히 독립적인 파일을 만드는 것 ▶ 하드링크와 심볼릭 링크의 차이는? ✔ 하드 링크는 원본 파일의 데이터를 직접 가리키는 반면, 심볼릭 링크는 원본 파일의 위치를 가르킨다. ✔ 그래서, 하드 링크는 원본이 삭제되어도 계속 사용 가능하지만, 심볼릭 링..
2023.11.27 -
[면접 대비] CS
▶ 구글에 접속하는 과정에 대해 설명해주세요 1. 사용자가 브라우저에 URL을 입력 2. DNS서버에서 URL를 IP주소로 교체 3. 이 IP주소로 3-way-handshake 연결 과정을 진행 4. 클라이언트는 웹 서버로 Http Request Message를 보냄 5. 웹 서버는 Http Response Message를 보냄 6. 도착한 메세지는 클라이언트 단에서 데이터와 함께 view가 랜더링된다. 7. 4-way-handshake 과정으로 연결이 해제된다. ▶ TCP vs UDP ✔ 비연결형과 연결형 : TCP는 연결형 프로토콜로, 전송 전에 먼저 연결을 설정하고, 데이터 전송이 끝난 후 연결을 해제합니다. 반면에, UDP는 비연결형 프로토콜로 연결 설정 없이 데이터를 전송합니다. ✔ 데이터의 신..
2023.11.20 -
[면접 대비] Java/Spring
[중요]▶ 객체 지향 프로그래밍의 키워드 ✅ 추상화 공통적인 기능이나 속성을 묶어서 이름을 붙인 것 ✅ 캡슐화 서로 연관있는 속성이나 기능들을 하나로 묶어 데이터를 외부로 부터 보호하는 것 ✅ 상속 객체가 다른 객체를 상속받으면, 그 객체의 요소들을 사용할 수 있는 것 ✅ 다형성 하나의 타입에 여러 개의 타입을 대입해서 사용할 수 있는 것 ▶ 제네릭이 무엇인가요? ✔ 클래스 내부에서 지정하는 것이 아니라, 외부에서 지정하도록 하는 것 ▶ 제네릭을 사용하는 이유는? ✔ 컴파일 시점에 오류를 발생시켜, 런타임 시점에 오류가 발생하는 것을 사전에 차단할 수 있음 ▶ 자바의 모든 클래스는 Object 클래스를 상속받습니다. 그리고 Object 클래스에는 equals() 와 hashCode() 라는 메소드가 선언..
2023.11.18 -
[Web]WEB와 WAS의 차이
먼저, 정적 페이지와 동적 페이지를 알아보자. ▶정적 페이지 바뀌지 않는 페이지 웹 서버는 파일 경로 이름을 받고, 경로와 일치하는 file contents를 반환함. 항상 동일한 페이지를 반환한다. ▶동적 페이지 인자에 따라 바뀌는 페이지 인자의 내용에 맞게 동적인 contents를 반환한다. 웹 서버에 의해 실행되는 프로그램을 통해 만들어진 결과물이다 Servlet :: WAS위에서 돌아가는 자바 프로그램 개발자는 Servlet에 doGet() 메소드를 구현한다. ▶WEB 개념에 있어서 하드웨어와 소프트웨어로 구분된다. (1) 구분 ✔ 하드웨어 :: Web 서버가 설치되어 있는 컴퓨터 ✔ 소프트웨어 :: 웹 브라우저 클라이언트로부터 Http 요청을 받고, 정적인 컨텐츠(html, css 등)를 제공하..
2023.11.01 -
[DB]SQL vs NOSQL
▶ SQL(관계형 DB) 1️⃣ 데이터는 정해진 데이터 스키마에 따라 테이블에 저장된다. 데이터는 테이블에 레코드로 저장되는데, 각 테이블마다 명확하게 정의된 구조가 있다. 해당 구조는 필드의 이름과 데이터 유형으로 정의된다. 따라서, 스키마를 준수하지 않은 레코드는 테이블에 추가할 수 없다. 즉, 스키마를 수정하지 않는 이상은 정해진 구조에 맞는 레코드만 추가가 가능한 것이 RDBMS의 특징 중 하나다. 2️⃣ 데이터는 관계를 통해 여러 테이블에 분산된다. 데이터의 중복을 피하기 위해 '관계'를 이용한다. 하나의 테이블에서 중복없이 하나의 데이터만을 관리하기 때문에 다른 테이블에서 부정확한 데이터를 다룰 위험이 없어지는 장점이 있다. 따라서, 여러 테이블에 조인할 필요없이 이미 필요한 모든 것을 갖춘 ..
2023.10.30 -
[DB] SQL Injection
해커에 의해 조작된 SQL 쿼리문이 데이터베이스에 그대로 전달되어 비정상적 명령을 실행시키는 공격 기법 ▶️공격 방법 1. 인증 우회 보통 로그인을 할 때, 아이디와 비밀번호를 input 창에 입력하게 된다. 쉽게 이해하기 위해 가벼운 예를 들어보자. 아이디가 abc, 비밀번호가 만약 1234일 때 쿼리는 아래와 같은 방식으로 전송될 것이다. SELECT * FROM USER WHERE ID = "abc" AND PASSWORD = "1234"; SQL Injection으로 공격할 때, input 창에 비밀번호를 입력함과 동시에 다른 쿼리문을 함께 입력하는 것이다. 1234; DELETE * USER FROM ID = "1"; 보안이 완벽하지 않은 경우, 이처럼 비밀번호가 아이디와 일치해서 True가 되..
2023.10.27