면접 질문들 (12) 썸네일형 리스트형 추상 클래스와 인터페이스의 차이 추상클래스 -그 추상클래스를 상속받아서 기능을 이용하게 하고 확장하게 하려고 public abstract class className{} 이렇게 선언하고 상속할 때 extends쓴다. 다중상속이 불가능함 인터페이스 -함수의 껍데기만 있고 그걸 하위클래스에서 목적에 맞게 구현 public interface interfaceName{} 이렇게 선언하고 상속할 때 implements 쓴다. 다중상속이 가능 인터페이스와 클래스의 차이 -> 인터페이스는 역할, 클래스는 구현 느낌! 웹 구동 원리? 사용자가 url를 입력하면 DNS 로 IP주소를 찾고 해당 PORT로 요청 패킷을 전송한다. 서버가 패킷을 받으면 관련 작업을 하고(뭐 디비작업이나 서버에서 처리해야할 다른 일들) 응답메세지를 생성해 패킷을 클라이언트로 보낸다 클라이언트가 패킷을 받으면 html을 렌더링 함 REST API REST API 서로 통신 할 수 있도록 해주는 api rest -자원 -메서드 -메세지 HTTP URI를 통해 자원을 명시하고, HTTP Method를 통해 해당자원에 대한 CRUD를 적용한 것 장: 의동하는 바를 명확히 파악가능, 서버-클라이언트 명확 분리, HTTP표준을 따르는 모든 플랫폼에서 사용가능 단: 지원안하는 것도 있음(익스플로어) method -get(read) : 지정된 uri에서 리소스의 표현을 검색, 응답메세지의 본문은 요청된 리소스의 세부 정보 포함 -post(create) : 지정된 uri에 새 리소스 만듦, 요청 메세지의 본문은 새 리소스의 세부정도 제공, post를 사용하여 실제로 리소스를 만들지 않은 작업을 트리거도 가능 -put(update) : 지정된 uri에 리소스를 .. RDB보다 NoSQL이 빠른 이유 RDB- 배열을 통해 데이터 저장 NoSQL- HashMap을 통해 데이터 저장 그렇기 때문에 key값만 알면 NoSQL이 빠르다. 출처 https://velog.io/@gkskaks1004/NoSQL-vs-RDB 객체지향프로그래밍 OOP (Object-Oriented Programming) 필요한 데이터를 추상화 시켜 객체를 만들고 객체의 관점에서 프로그래밍 하는 것 클래스: 추상화를 거처 집단에 속하는 속성과 행위를 변수와 메서드로 정의한 것 인스턴스(객체): 클래스에서 정의한 것을 토대로 실제 메모리에 할당 된 것 1) 캡슐화 비슷한 기능을 하는 데이터들을 한곳에 모아서 담아 놓는 것 -재활용하기 쉬움, 정보은닉가능 2)추상화 공통된 특징을 묶어서 이름을 붙이는 것 (->클래스를 정의하는것) 3)상속 기존 상위 클래스에 근거하여 새로운 클래스를 정의 할 수 있게 해주는것 필요한 부분만 재사용하고 새로운 기능 추가도 가능, 코드중복을 막을 수 있음 4)다형성 형태가 같은데 다른 기능을 하는 것 오버라이딩 - 상속에서 재정의 할 때, 변수 리턴까지 타입 개수 다 같다. 오버로딩 - 결국 같.. MSA란? MSA란? MicroService Architecture 큰 프로젝트를 작은단위로 나눠서 독립적으로 개발하는 것 독립적이기 때문에 서비스 별로 배포 가능 부분별 오류처리 가능 확장이 용이함 API를 서비스별로 부르기 때문에 시간 더 걸리고 데이터도 분산되어 있기 때문에 관리하기가 어렵다 출처 https://velog.io/@tedigom/MSA-%EC%A0%9C%EB%8C%80%EB%A1%9C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-1-MSA%EC%9D%98-%EA%B8%B0%EB%B3%B8-%EA%B0%9C%EB%85%90-3sk28yrv0e 배열과 링크드리스트 배열과 링크드리스트의 차이는? 배열은 메모리주소를 연속해서 쓴다는 것이고 링크드리스트는 연속되지 않아도 된다는 것이다. 그래서 배열은 값을 찾을 때 O(1)이 걸리고, 링크드리스트는 O(n)이 걸린다.(링크를 따라가야하기 때문) 삽입 삭제는 배열은 연속적으로 해야하기때문에 조금 귀찮다. 한칸씩 밀거나 땡겨야하기 때문데.. 대신 링크드리스트는 링크로 연결되어있기때문에 배열보다 편하게 할 수 있다. 프로세스, 스레드 차이 프로세스 -운영체제로부터 자원을 할당 받은 작업의 단위 스레드 -프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위 ( Code/Data/Heap 형식으로 할당된 메모리 영역만 공유하고 stack은 따로) 최소 작업의 단위 프로그램(코드덩어리)---실행--->프로세스 (그안에서 자원을 공유하는건 스레드) 프로세스는 오류가 있으면 다른 프로세스에 영향을 주지 않는다(자원공유 안하기 때문) 스레드는 오류 생기면 다른 스레드에게 영향을 줄 수 있다(자원공유 하기 때문) 참고https://velog.io/@raejoonee/%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EC%99%80-%EC%8A%A4%EB%A0%88%EB%93%9C%EC%9D%98-%EC%B0%A8%EC%9D%B4 이전 1 2 다음