Git은 소스 코드를 효율적 으로 관리하기 위해 만들어진 분산형 버전 관리 시스템 입니다.✔️ 변경내용 추적: 모든 변경 사항의 로그를 유지하므로 누가, 언제, 어떤 변경을 했는지 추적 가능하고, 이전 버전으로 손쉽게 복구할 수 있습니다.✔️ 협업 용이성: 다수의 개발
movie커밋 메시지 수정 (해시값이 바껴서 아예 다른 커밋이 된다)git commit --ament -m "수정한 커밋 메시지"\-> 협업 시 다른 작업자의 커밋에는 사용하지 않기 (충돌 방지)merge보다 rebase를 하면 브랜치가 깔끔해진다
영상 후기movie팀의 브랜칭 전략은 조직, 서비스를 고려하여 협의를 통해 결정해야한다\-브랜칭 전략: Git flow vs GitHub flow배포 주기가 길고 QA, 테스트, hotfix의 여력이 있으면 Git flow가 적합지속적으로 테스트 및 배포를 하는 경우
movie효율적인 유지 보수를 위해 View와 Domain의 관심사를 분리하는 디자인 패턴이다.서로 분리되어 각자의 역할에 집중할 수 있게 한다.정해진 규칙이나 구현 방법은 없다.(각자 구현하기 나름이다)\-> 그 자체를 이해하는 것이 중요하다참고 페이지
movie유지보수가 편해지는 코드 구성 방식Model : 데이터와 관련된 부분View : 사용자한테 보여지는 부분Controller : View와 Model의 중개자 역할Model은 Controller와 View에 의존하지 않아야 한다. (Model 내부에 Contro
Ref.Spring framework MVC 패턴 알아보기
오픈소스 인 메모리 데이터 구조 저장소이며, 비관계형 DBMS 입니다. Key-Value 형식의 데이터를 저장합니다.주로 캐싱, 세션 관리, 구독/게시(sub/pub) 등에 사용됩니다.데이터를 컴퓨터의 SSD,HDD에 저장하는 대부분의 DBMS방식과는 달리, RAM에
MongoDB는 NoSQL 로, 데이터를 JSON과 유사한 형식인 BSON 문서로 저장합니다.(문서 지향 구조)유연한 스키마를 가지며, 이로 인해 요구 사항이 변화함에 따라 데이터베이스 스키마를 쉽게 조정할 수 있습니다.샤딩을 통한 수평적 확장을 지원합니다.BSON이란
RDBMS 4가지를 비교해 보았습니다.오픈소스가볍고 빠른 속도웹 기반 애플리케이션에 널리 사용되며, 강력한 커뮤니티 지원복잡한 트랜잭션 처리에 있어 PostgreSQL이나 Oracle에 비해 기능적으로 제한적오픈소스MySQL과 높은 호환성MySQL의 기능을 확장하고 최
1-1 면접에서 물어보는 의도 1-2 SQL과 NoSQL 큰 틀에서 보기 2-1 RDB 특징 2-2 RDBMS 종류 2-3 관련 면접 질문들 3-1 NoSQL 특징 3-2 NoSQL 종류 3-3 관련 면접 질문들 4-1 비교하기 4-2 각각 어떤 상황
2. 하나의 트랜잭션은 Commit되거나 Rollback됩니다.원자성 (Atomicity): 트랜잭션 내 모든 작업은 완전히 수행되거나 전혀 수행되지 않습니다.일관성 (Consistency): 트랜잭션이 완료된 후에도 모든 데이터베이스 규칙과 제약 조건이 충족되어야 합
이상현상이 있는 릴레이션을 분해하여 여러 개의 릴레이션을 생성해서 이상현상을 없애는 과정으로, 정규형이 높아질수록 이상현상은 줄어들게 됩니다.불필요한 데이터 중복으로 인해 릴레이션에 대한 데이터 삽입, 수정, 삭제 연산을 할 때 발생할 수 있는 부작용 입니다. 이상현상
DB 연관관계 매핑 시 고려사항방향: 단방향, 양방향 다중성: 일대일(1:1), 다대일(N:1), 일대다(1:N), 다대다(N:M)연관 관계의 주인: 양방향일 때, 연관 관계에서 관리 주체 ( mappedBy 속성을 사용해서 주인을 지정)게시판(1) ← 게시글(N)(외
프로그램은 저장매체에 저장된 실행 파일을 의미합니다.프로세스는 컴퓨터에서 작업 중인 프로그램을 의미합니다.사용자가 IntelliJ IDEA 실행 파일을 더블 클릭하면, 운영체제는 메모리 공간을 할당하고 프로그램을 메모리에 적재합니다. 이 순간, IntelliJ IDEA
PCB는 운영체제에서 프로세스를 관리하기 위해, 해당 프로세스의 상태 및 제어 정보를 저장하는 자료구조입니다.PCB는 프로세스 생성 시에 각 프로세스마다 고유하게 생성되며, 프로세스의 작업 상태를 저장합니다.이는 작업이 중단된 후 재개될 때 이전 상태를 복원하는 데 사
영상 내용 정리 https://www.youtube.com/watch?v=VaaRvs8YU1M movie
프로세스 메모리 구조에서 Stack, Data, Code 영역의 크기는 컴파일 시 결정되고, Heap 영역의 크기는 런타임 시 동적으로 할당됩니다. Stack과 Heap 영역은 동적 메모리 할당이 가능해 두영역 사이에 빈 메모리 공간이 존재하는데, 이 영역은 서로 침범
스레드는 한 프로세스 내에서 나뉘어진 하나 이상의 실행 단위이며, 프로세스에 할당된 메모리와 자원을 공유하며 작업을 수행합니다.프로세스는 운영 체제로부터 CPU 시간과 같은 자원을 할당받는 더 큰 개념이며, 실제로 CPU에서 작업을 수행하는 것은 프로세스 내부의 스레드
movie스레드를 많이 쓸수록 항상 성능이 좋아질까요?\-> 멀티스레딩 환경에서 스레드 수와 실제 성능의 상관관계를 묻는 질문이다.생각1. 스레드를 많이 쓰면 쓸수록 동시에 더 많은 작업들을 실행할 수 있으니까 성능이 좋아 질 수도 있다.\-> 암묵적인 전제: 해당 애
멀티 프로세스는 하나의 응용 프로그램이 여러 개의 프로세스를 동시에 실행할 수 있게 하는 운영체제의 기술입니다.ex) 멀티 프로세스 예시: 크롬 브라우저의 멀티 탭멀티 프로세스 환경에서는 하나의 부모 프로세스가 여러 자식 프로세스를 생성함으로써 다중 프로세스 구조를 형
프로세스의 개념에 대해 알아보기 전에 먼저 프로세스와 프로그램의 차이에 대해 알아보겠습니다.Stack 영역함수 호출 시 생성되는 지역 변수, 매개변수, 반환 주소 등의 임시 데이터를 저장하는 공간입니다.함수 호출과 함께 생성되고 함수가 반환되면 해제됩니다.컴파일 시점에
프로세스는 운영체제로부터 자원을 할당받아 실행하는 독립적인 작업 단위입니다. 각 프로세스는 독립된 메모리 공간(Stack, Heap, Data, Code)을 가지며, 다른 프로세스와 자원을 공유하지 않습니다. 이로 인해 프로세스 간의 통신을 위해서는 별도의 기법인 IP
200 Ok : 서버가 요청을 성곡적으로 처리201 Created : 요청이 처리되어서 ‘새로운 리소스 생성’204 No Content : 처리를 성공하였지만, 클라이언트에게 돌려줄 컨텐츠가 없다 (응답에 헤더만 있고 바디는 없다) → 주로 DELETE 요청3
HTTP는 OSI 네트워크 통신 모델의 애플리에키션 계층 프로토콜이다.HTTP는 여러 유형의 요청과 응답을 정의GET, PUT 등의 요청서버는 숫자 코드(200, 400) 및 데이터 양식(OK, Bad request)으로 다양한 유형의 HTTP 응답을 전송HTTPS는
인터넷상에서 데이터 패킷을 보낼 때, 그 패킷들이 최종 목적지까지 가장 효율적인 경로를 통해 전송되도록 하는 데 필요한 규칙의 집합OSI 7 Later에서 IP는 네트워크 계층(3계층)에 위치합니다.다만 이것은 표준 모델이며, 현실에서 인터넷을 위해 사용하는 모델인 T
트랜잭션 락 기법은 여러 트랜잭션이 동일한 데이터 항목에 동시에 접근하는 것을 방지하여 데이터의 동시성 문제를 제어하는 방법트랜잭션 처리의 순차성을 보장하기 위한 방법Lock은 DBMS가 자동으로도 적용하기도 하고 수동으로도 줄 수 있다.트랜잭션 락을 두 카테고리로 나
사용자들이 같은 데이터를 동시에 수정할 것이라고 가정을 합니다충돌이 발생할 가능성을 고려하여 미리 락을 걸고 작업을 수행합니다.비관적 락 종류로는 공유락과 배타적 락이 있습니다.데이터를 읽을 때 사용되는 락입니다.여러 트랜잭션이 동시에 접근하여 데이터를 읽을 수를 있지
인덱스는 데이터베이스에서 검색 성능을 향상시키는 자료 구조입니다. 데이터베이스 테이블의 특정 컬럼에 인덱스를 생성하면, 해당 컬럼의 데이터는 정렬되어 별도의 메모리 공간에 물리적 주소와 함께 저장됩니다. 이 구조는 데이터 접근 속도를 빠르게 하여, 데이터 검색 및 처리
정의스케줄링 대상은 Ready Queue에 있는 프로세스들 입니다.특징: 먼저 온 순서대로 처리한다.문제점: convoy effect - 소요시간이 긴 프로세스가 먼저 도달하여 효율성을 낮추는 현상이 발생한다.ref.BreadcrumbsInterview_Question
👀 해당 주제 질문 리스트 미리보기Q1. 데드락이란 무엇이며 언제 발생하나요? Q2. 교착상태의 해결방법에 대해 설명해보세요.무한 대기 상태: 두 개 이상의 프로세스나 스레드가 서로 자원을 얻지 못해서 다음 작업을 하지 못하여 무한히 다음 자원을 기다리는 상태자원은
동시성 프로그래밍에서 공유된 자원에 여러 개의 프로세스가 동시에 접근하면서 문제가 발생하는 것을 안전하게 관리하기 위해서는 상호배제를 달성하는 기법이 필요한데, 이 때 세마포어와 뮤텍스 방법이 쓰입니다.상호배제란? 공유 자원을 어느 시점에서 한 개의 프로세스만이 사용할
👀 해당 주제 질문 리스트 미리보기 Q1. 컨텍스트 스위칭에 대해 설명해보세요Q2. 컨텍스트 스위칭의 과정에 대해 설명해보세요Keyword: PCB, 인터럽트, context, 멀티 프로세싱, 오버헤드컨텍스트 스위칭은 멀티프로세스 환경에서 CPU가 현재 실행 중인 프
👀 해당 주제 질문 리스트 미리보기 Q1. 페이징에 대해 설명해주세요.Q2. 페이징 기법의 단점에 대해 설명해주세요.페이징(Paging)은 프로세스의 주소 공간을 일정한 크기의 페이지로 나누어 물리적 메모리의 서로 다른 위치에 저장하는 방식입니다. 페이징을 통해 물리
👀 해당 주제 질문 리스트 미리보기 Q1. 요구 페이징에 대해 설명하세요Q2. 요구 페이징의 단점에 대해 설명해보세요요구 페이징은 프로세스를 메모리에 적재할 때, 처음부터 모든 페이지를 적재하지 않고 필요한 페이지만 메모리에 적재하는 기법입니다.효율적인 메모리 사용요
👀 해당 주제 질문 리스트 미리보기 Q1. 페이지 교체 알고리즘에 대해 알려주세요.Q2. 페이지 교체 알고리즘은 어떤 것이 있을까요?FIFO(선입선출), LFU(Least Frequently Used), LRU(Least Recently Used) + 클럭 알고리즘페
가상 메모리란? 가상 메모리란 프로세스 전체가 메모리 내에 올라오지 않더라도 실행이 가능하도록 하는 기법이며, 프로그램이 물리 메모리보다 커도 된다는 주요 장점이 있습니다. 가상 메모리의 장점 프로그램의 일부분만 메모리에 올릴 수 있게 되었고, 이를 통해 물리 메
데이터를 메인 메모리에서 접근하길 원할 때, 프로그램 전체를 메모리에 적재하는 것이 아니기 때문에 원하는 데이터가 메모리에 없을 수도 있습니다. 이러한 경우를 페이지 부재라고 합니다.페이지 폴트는 요구 페이징에서 자주 발생할 수 있으며, 페이지 폴트가 자주 발생하면 시
캐시 관련 질문 미리보기 Q1. 캐시란 무엇인가요? Q2. 캐시의 장단점와 어떤 부분에 활용하는지 설명해주세요. Q3. Cache Hit Ratio에 대해 설명해보세요. Q4. Cache Locality란 무엇인가요? Q5. 캐시 미스(Cache Miss)와 캐시 히트
해당 주제의 기술면접 질문 미리보기 Q1. 시스템 콜에 대해 간결하게 설명해주세요.Q2. 우리가 사용하는 시스템 콜의 예시를 들어주세요.시스템 콜은 운영체제가 제공하는 인터페이스로, 응용 프로그램이 운영체제의 기능을 사용할 수 있게 합니다. 이는 User 프로그램이 운
해당 주제의 기술면접 질문 미리보기 Q1. 인터럽트(Interrupt) 가 무엇인지 설명해주세요.Q2. 인터럽트 발생 시 처리 과정을 설명해보세요.인터럽트는 프로그램 실행 도중 예기치 않은 상황이 발생했을 때, 현재 실행 중인 작업을 즉시 중단하고 발생한 상황을 우선
인덱스 개념 다시 보기 DB에서 인덱스란 추가적인 저장 공간을 사용해서 테이블 검색 속도를 향상시키기 위한 자료구조 입니다. 인덱스는 SELECT 쿼리의 WHERE 절에 사용될 컬럼에 대한 조회 성능을 개선할 때 사용됩니다. 인덱스가 없으면 데이터를 탐색할 때 F
트랜잭션의 격리 수준(Isolation Level)이란 여러 트랜잭션이 동시에 처리될 때, 특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회하는 데이터를 볼 수 있게 허용할지 여부를 결정하는 것을 말합니다.격리수준은 크게 아래의 4개로 나뉩니다.Level0. READ
둘 이상의 테이블을 연결해서 데이터를 검색하는 방법연결하려면 테이블들이 적어도 하나의 컬럼을 공유하고 있어야 합니다.INNER JOIN: 내부조인 -> 교집합LEFT/RIGHT JOIN -> 부분 집합OUTER JOIN -> 합집합Oracle은 OUTER JOIN이 있
해당 주제 관련 기술면접 질문 Q. Redis와 Memcached의 차이에 대해서 설명해주세요.1ms 이하의 응답시간: 데이터를 메모리에 저장하기 때문에, 디스크 기반의 데이터베이스보다 빠릅니다.스케일아웃: 데이터를 분산하여 저장시킬 수 있습니다.다양한 언어 지원: J
해당 주제 관련 기술면접 질문 미리보기Q1. SQL Injection에 대해서 설명해주세요.Q2. SQL Injection을 방어하기 위한 방법을 말해주세요.공격자가 악의적인 의도를 갖는 구문을 삽입하여 공격자가 원하는 SQL을 실행하도록 하는 웹해킹 기법입니다.이를
해당 주제 관련 기술면접 질문 미리보기 Q1. 데이터베이스에서 키의 역할은 무엇인가요?Q2. 데이터베이스에서 다양한 키 종류에 대해 설명하세요.Q3. Pimary Key와 Unique Key 차이를 말씀해보세요.Key는 검색이나 정렬 시 튜플을 구분할 수 있는 기준이
https://velog.io/@itonse/DB-JOIN 앞서 JOIN 종류에 대해서 글을 작성하였는데, 여기에 나온 JOIN 들은 이 원리를 기반으로 작업이 이루어집니다. 1. 중첩 루프 조인(NL Join) 중첩 for문과 같은 원리로 조건에 맞는 조인을 하는
해당 주제 관련 기술면접 질문 미리보기 Q. TCP/IP 4계층에 대해서 설명해주세요인터넷 통신을 위한 모델OSI 7계층과의 차이OSI 7계층 은 표준 모델TCP/IP 4계층 은 현실에서 인터넷을 위해 사용하는 모델데이터의 물리적 전송을 담당하며, 전기 신호를 데이터로
신뢰성 있는 데이터 전송을 지원하는 연결 지향형 프로토콜 입니다.일반적으로 IP와 함께 사용됩니다. ( IP는 데이터 전송 처리를 한다면, TCP는 패킷 추적 및 관리를 합니다)3-way handshaking 과정을 통해 연결 후 통신을 시작하는데, 흐름 제어와 혼잡
해당 주제의 기술면접 질문 미리보기 Q1. TCP의 연결과 끊는 과정에 대해서 설명해주세요. Q2. TCP의 연결 과정과 연결 종료 과정 단계가 차이나는 이유가 뭔가요? Q3. 만약 Server에서 Fin 플래그를 전송하기 전에 전송한 패킷이 라우팅 지연이나 패킷 유실
해당 주제 관련 기술면접 질문 미리보기 Q1. 흐름제어와 혼잡 제어에 대해 설명해주세요.Q2. 흐름제어기법 중 슬라이딩 윈도우 방식에 대해 설명해주세요.네트워크 트래픽에 따른 효율적/신뢰적 송신을 위한 제어 알고리즘 적용Timeout시 ACK를 받지 못한 패킷부터 기
네트워크 기술면접 질문 성향TCP, UDP, IP: 네트워크 공부를 했는지 확인하려는 의도로 많이 물어볼 수 있으며, 지식적인 부분이 큼HTTP: 실무적인 입장에서 물어보는 경향이 있음연결설정TCP: 3-way handshakeUDP: 없음연결 해제TCP: 4
HTTP/0.9 ~ HTTP/2.0 까지는 기본적으로 TCP 전송 프로토콜 사용HTTP/3.0 은 UDP 프로토콜 사용1996년에 발표HTTP 헤더 개념이 도입되어 요청과 응답에 추가됨 (단순 텍스트 기반 메시지 형식)버전 정보와 요청 메서드가 함께 전송되기 시작상태
http://velog.io/write?id=itonse정보 요청, 데이터를 URL의 쿼리 스트링에 key=value 형식으로 포함시켜 전송하며, 파마리터가 여러개인 경우 & 기호로 구분합니다.요청하는 데이터가 HTTP Request Message의 Heade
CORS는 Cross Origin Resource Sharing의 약자로, 서로 다른 도메인간 자원을 공유하는 것을 의미합니다. 기본적으로, 웹 브라우저는 보안상의 이유로 이러한 요청을 차단합니다.여기서 Origin은 출처를 의미하며, Protocol (예: https
쿠키와 세션은 왜 사용할까? HTTP 통신은 비연결성, 비상태성이라는 특징을 가지고 있다. 비연결성 (Connectionless) 클라이언트가 서버에게 request를 보냈을 때 그 request에 맞는 response를 보낸 후 연결을 끊는다. 비상태성 (Stat