쿠키와 세션은 무엇이며 어떤 차이가 있나요? HTTP 프로토콜은 비연결(Connectionless)을 지향하고, 상태정보를 유지하지 않는(Stateless) 특징이 있습니다. 이러한 특징 덕분에 리소스의 낭비를 크게 줄여주지만, 매 통신마다 클라이언트가 인증을 필요로하게 됩니다. 쿠키와 세션은 이 단점을 보완하는 기술입니다. 두 기술의 가장 큰 차이는 저장 위치로, 쿠키는 클라이언트에 세션은 서버에 저장됩니다. 그래서 쿠키는 빠르지만 보안이 취약하게 되고, 세션은 느리지만 상대적으로 보안성이 좋습니다. 또 쿠키는 브라우저가 종료되어도 남아있게 되고, 세션은 삭제된다는 차이도 있습니다. 일반적으로 보안성이 중요할 때는 세션을, 종료 시에도 유지되도록 하려면 쿠키를 사용하는 등 두 기술을 병행해서 활용하게 ..
화살표 함수란 무엇인가요? 화살표 함수는 ES6에서 추가된 비교적 최근 문법으로, 함수를 아주 간결하게 표현하는데 사용할 수 있습니다. 기본적으로 function 키워드를 생략할 수 있고, 매개변수가 하나라면 괄호를, 바디가 표현식 하나로 이루어져 있다면 중괄호와 return 키워드까지 생략할 수 있습니다. 이러한 편의성 외에 가지고 있는 큰 특징으로는 this가 있습니다. 화살표 함수 내에서의 this는 자신이 선언된 위치의 this(=Lexical this)를 가리키고, call, apply, bind 메서드를 사용하여 this를 변경할 수 없습니다. 이 때문에 화살표 함수는 메서드, 생성자, 이벤트 리스너의 콜백 함수로는 사용할 수 없지만, 일반적인 콜백 함수에서 유용하게 사용될 수 있습니다. Re..
객체 지향 프로그래밍이란 무엇인가요? 객체 지향 프로그래밍은 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체로 만들고, 객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법입니다. 기존의 절차적 프로그램이 컴퓨터 중심적 이라면, 객체 지향 프로그래밍은 현실 세계 중심적인, 즉 컴퓨터가 아니라 사람이 실제로 생각하는 것처럼 구현하고자 하는 프로그래밍 방법입니다. 이러한 구현 방식 때문에 생산성, 재사용성은 좋고, 버그 발생은 적고, 디버깅과 유지보수가 쉽습니다. 또, 객체 지향 프로그래밍을 설명할 때 가장 많이 등장하는 것이 4개의 특징과 5개의 원칙입니다. 먼저 4개의 특징은 추상화, 캡슐화, 상속, 다양성입니다. 그리고 5개의 원칙은 SOLID 원칙이라고도 하는데, S 단일 책임 원칙, O 개..
Java의 데이터 타입은 어떤 것들이 있나요? 다른 언어와 다른 특징이 있나요? Java의 데이터 타입은 기본형과 참조형으로 나뉩니다. 기본형은 다시 정수형, 실수형, 문자형, 논리형으로 나눌 수 있고, 대표적으로 정수형은 int, 실수형은 float, 문자형은 char, 논리형은 boolean 을 예로 들 수 있습니다. 기본형을 제외한 모든 자료형들이 참조형에 해당하고, string, array, class, interface, enum 등이 대표적입니다. 특징을 살펴보면, 기본형은 크기가 작고 고정적이기 때문에 그 값이 메모리의 stack 영역에 바로 저장됩니다. 이와 달리 참조형은 가변적이기 때문에 동적으로 관리되는 메모리의 heap 영역에 실제 값이 저장되고, 이 곳을 가리키는 주소만이 stack..
DAO, DTO, VO 의 차이점은 무엇인가요? DAO는 Data Access Object로, DB의 데이터를 조회, 조작하는 객체입니다. 이를 통해 DB와 직접적으로 상호작용하는 로직을 비즈니스 로직과 분리할 수 있습니다. DTO는 Data Transfer Object로, 계층간의 데이터를 교환하기 위한 객체입니다. 일반적으로 특별한 로직을 가지고 있지 않고, Getter와 Setter 메서드만을 가집니다. VO는 Value Object로 DTO와 잘못 혼용되어 사용될 정도로 유사하면서도 다른 개념입니다. DTO는 데이터의 교환에, VO는 데이터의 값 자체에 초점이 맞춰져 있다고 생각됩니다. VO는 DTO와 달리 Setter 메서드를 가지지 않음으로써 read only 속성을 가지고, Getter 메서..
RESTful API란 무엇인가요? REST란 웹의 장점을 최대한 활용하고자 고안된 하나의 아키텍쳐로 Uniform interface, Stateless, Cashable 등의 다양한 기본 원칙을 가지고 있습니다. RESTful이라고 하는 것은 특별히 정의된 개념은 아니며, REST라고 하는 아키텍쳐를 성실히 지킨 API를 “RESTful 하다.” 라고 흔히 표현하는 것 뿐입니다. RESTful한 API를 개발할 수 있는 방법으로는 대표적으로 resourse는 URI에 명사로 표현하고, resourse에 대한 행위는 HTTP Method로 표현하여 직관적으로 이 둘을 분리하는 것입니다. 또 다양한 방법들이 있는데요, 결국 RESTful API의 목적은 이해하기 쉽고 사용하기 쉬운 API를 만드는 것에 있..
좋은 코드란 무엇이라고 생각하나요? 일반적으로 좋은 코드라 하면 '일관성 있다.', '중복이 적다.', '가독성이 높다.', '테스트에 용이하다.', '확장성이 좋다.' 와 같은 특징들을 가지고 있는 코드를 말합니다. 기본적으로 프로그래밍 언어 개발사에서 제안하거나, 회사나 팀 단위에서 정해놓은 코딩 스타일이라 불리는 규칙을 잘 지키는 것으로 어느 정도 좋은 코드가 나올 것입니다. 여기서 더 나아가서는 중복을 줄이고, 함수 내부의 추상화 레벨을 통일시키는 등의 리팩토링 과정을 주기적으로 수행하고, 하나의 파일뿐만 아니라 프로젝트 단위에서 고려한 디렉토리의 정리 등을 통해 더욱 좋은 코드가 나올 수 있다고 생각합니다. References 좋은 코드란 무엇일까? ‘성선설’에 기반하면 모든 개발자는 좋은 코드..
관련 링크 구글에 '기술면접 github' 와 비슷한 키워드로 검색하면 다양한 글들을 찾아볼 수 있다. https://github.com/JaeYeopHan/Interview_Question_for_Beginner GitHub - JaeYeopHan/Interview_Question_for_Beginner: Technical-Interview guidelines written for those who started studying progr :boy: :girl: Technical-Interview guidelines written for those who started studying programming. I wish you all the best. :space_invader: - GitHub - J..
- Total
- Today
- Yesterday
- 2053
- 13241
- Programmers
- 10807
- 25192
- 4134
- 24060
- 1269
- MySQL
- SQL
- til
- 24723
- Wil
- 백준
- programmer
- 2903
- 26069
- 2587
- 코육대
- 13909
- 20920
- 2738
- 5597
- 17103
- 항해 플러스
- 벡준
- 24313
- 항해+
- 25501
- Python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |