본문 바로가기

전체 글

(25)
2023/03/02 TIL 오버로딩과 오버라이딩, RDB와 NoSQL Q1. 오버로딩과 오버라이딩의 차이점은 무엇인가요? 오버로딩이란, 메소드의 이름은 같고 파라미터의 갯수나 타입이 다른 함수를 정의하는 것 오버로딩의 조건 메소드 이름이 동일해야 함 파라미터 갯수가 달라야 함 파라미터 갯수가 같을 경우, 데이터 타입이 달라야 한다. 리턴형이 같거나 달라도 됨 오버라이딩이란, 상속 관계에 있는 클래스 간에 같은 이름의 메소드를 정의하는 것 (만약 자식 클래스가 부모 클래스에서 선언된 것 과 같은 메소드를 가질 때, 메소드 오버라이딩이라고 한다.) 오버라이딩의 조건 오버라이드 하고자 하는 메소드가 상위 클래스에 존재해야 함 메소드 이름이 동일해야 함 메소드의 파라미터 갯수 및 자료형이 동일해야 함 리턴형이 동일해야 함 상위 메소드와 동일하거나 내용이 추가되어야 함 [Peopl..
2023/03/01 TIL 절차지향/객체지향/함수형 프로그래밍, 시간복잡도와 공간복잡도 Q1. 절차지향 / 객체지향 / 함수형 프로그래밍이란 무엇이고 차이점은 무엇인가? 절차지향 : 일이 진행되는 순서대로 프로그래밍하는 방법 장점 코드의 가독성이 좋음. 컴퓨터의 처리구조와 비슷해 실행 속도가 빠름. 단점 각각의 코드가 순서에 민감하게 연결 되어있어, 유지보수 및 분석이 어려움. 객체지향 : 모든 데이터를 객체(Object)로 취급하고, 객체가 처리 요청을 받았을 때 서로 연관되어있는 함수와 변수들을 객체라는 것으로 그룹핑하고 그 객체에 들어있는 함수들을 호출해서 다른 함수들과 분리/구분해줌. 4가지 특징 1) 추상화 : 공통적인 속성이나 기능을 묶어서 이름을 붙이는 것 2) 캡슐화 : 데이터를 은닉하고 데이터 기능을 노출시키지 않음. 3) 상속성 : 상위 부모 객체의 속성과 특징을 하위 객..
2023/02/28 TIL 웹 서버와 WAS, Stack과 Queue, Array와 Linked List Q1. 웹 서버와 WAS의 차이는? 웹 서버란 HTTP 프로토콜을 기반으로 클라이언트가 웹 브라우저에서 어떠한 요청을 하면 그 요청을 받아 *정적 컨텐츠를 제공하는 서버이다. (ex. Apache, NginX) 더보기 *정적 컨텐츠 : 단순 HTML 문서, CSS, 이미지, 파일 등 즉시 응답 가능한 컨텐츠 WAS(Web Application Server)란 DB 조회 혹은 다양한 로직 처리를 요구하는 동적 컨텐츠를 제공하기 위해 만들어진 Application 서버이다. (ex. Tomcat, JBoss, WebSphere) 목적이 다르다는 점에서 차이가 있다. 우리가 만드는 웹페이지는 정적 컨텐츠와 동적 컨텐츠를 함께 노출하게 한다. 웹 서버는 정적인 데이터를 처리하는 서버이며 이미지나 단순 html파..
2023/02/27 TIL @SpringBootTest와 @WebMvcTest, 트랜잭션, TCP와 UDP Q1. @SpringBootTest와 @WebMvcTest의 차이점을 설명해 주세요. SpringBoot에서 JUnit을 사용하여 테스트 코드를 작성할 때 대표적으로 사용하는 어노테이션이다. @SpringBootTest는 프로젝트 내부에 있는 스프링 빈을 모두 등록하여 테스트에 필요한 의존성을 추가하고 Spring Framework에서 전체적으로 Flow가 제대로 동작하는지 검증하기 위해 사용하는 편이다. (단위 테스트보다 통합테스트 할 때 사용) 장점 애플리케이션의 설정, 모든 Bean을 모두 로드하기 때문에 운영환경과 가장 유사한 테스트가 가능하다. 단점 테스트 단위가 크기 때문에 디버깅이 까다롭고, 모든 Bean을 로드하기 때문에 시간이 오래 걸린다. @WebMvcTest는 MVC를 위한 테스트로,..
Openvidu Session disconnect WebRTC를 연결하기 위해 Openvidu라는 오픈소스를 이용하였다. 촬영 방 입장 시 openvidu에 session이 연결되어 미디어 통신이 가능했는데, 방 퇴장 시, 퇴장한 유저는 session 연결이 끊긴 것처럼 보이지만 실제로는 끊기지 않아 방에 남아있는 다른 유저들에게 퇴장한 유저의 카메라와 오디오가 연결되는 이슈가 있었다. 해당 페이지를 나가면 자동으로 세션이 끊기는 줄 알았는데.. 찾아보니 직접 Openvidu Session 연결 해제를 해줘야 했다. (오픈비두 세션 연결도 자동으로 되는 게 아니었는데.. 연결 해제는 왜 자동으로 되는 거라고 생각했을까..?) Openvidu Docs를 찾아보니 딱 하나 있었다. 어떤 connection을 넣어야 하는 걸까 곰곰이 생각하다가, openvi..