본문 바로가기
728x90
반응형

기타 CS35

웹/백엔드 개발자 기술 면접 준비 기술면접 D-1에 훑어볼 용으로 정리하는 for 백엔드개발자 기술면접 대비 요약집입니다. 손으로 메모해둔 쪽지들 모아모아 옮긴거라 순서가 뒤죽박죽이고 요약st인 것 감안요- 😌💙 Java 메모리 구조 코드 영억 - 프로그램 코드가 저장된 영역 데이터 영역 - 전역변수, 정적변수 할당 영역 힙 영역 - 런타임 시 동적 병수 할당 영역 스택 영역 - 컴파일 시 지역 변수, 함수, 매개 변수 할당 영역 멀티스레드 멀티스레드 환경에서는 race condition(경합 상황)이 발생할 수 있다. 이 때 요청이 같은 상태의 자원을 보도록 하는 가시성과 요청이 모두 반영되도록 하는 원자성을 확보하는 것이 중요하다. 변수에 volatile 키워드를 추가하여 캐싱한 자원을 보지 않도록 하고, 메소드에 synchroniz.. 2023. 3. 18.
(JPA) Entity 설계 시 주의점 JPA에서 Entity 설계 시 유의할 점 1 : N 관계에서는 N에 해당되는 엔티티에 FK가 있어야 한다. (회원-주문의 관계라면 주문이 회원이 FK를 가진다.) 1 : 1 관계에서는 둘 중 어디든 FK를 둘 수 있지만 이왕이면 더 많이 조회하는 엔티티에 둔다. N : N 관계(@ManyToMany)는 만들지 않는다. N : N인 경우 매핑 테이블이 필요한데 이 테이블에는 등록일, 수정일 같은 필드를 두기가 어려워 운영에 좋지 않다. 값 타입(임베디드 타입)은 변경하면 안된다. 생성시에만 값을 주고 변경 불가능하도록 해야 한다. 값 타입에는 @Embeddable, 사용 필드에는 @Embedded 를 달아준다. 엔티티는 가급적 변경 불가능하게 설계한다. (Setter 사용 금지. 생성자를 통해서만 생기도.. 2023. 3. 18.
쿠버네티스란 무엇인가 상세 설명 및 이미지 출처 : https://kubernetes.io/ko/docs/concepts/overview/ 컨테이너 개발 시대 컨테이너는 VM과 유사하지만 애플리케이션 간에 운영체제(OS)를 공유한다. 때문에 VM 보다 상대적으로 컨테이너가 가볍다고 여겨진다. 컨테이너도 자체 파일 시스템, CPU점유율, 메모리, 프로세스 공간 등을 가진다. 기본 인프라와의 종속성을 끊었기 때문에 클라우드나 OS 배포본에 모두 이식할 수 있다. 컨테이너의 장점 VM 이미지 사용에 비해 컨테이너 이미지 생성이 쉽고 효율적 지속적인 개발, 통합 및 배포 - 안정적이고 주기적으로 컨테이너 이미지 빌드/배포 가능 빠르고 효율적인 롤백 가능 느슨하게 커플되고, 분산되고, 유연하며, 자유로운 마이크로 서비스 쿠버네티스의 .. 2023. 3. 15.
Redis Redis key-value 형태로 데이터를 저장하는 인메모리 외부 딕셔너리 서버 Remote - 외부 dictionary - HashMap(key-value) server - 서버 (In-memory 서버) Java 객체(HashMap)에 자료를 저장하지 않고 레디스를 사용하는 이유는? 서버가 여러대인 경우 일관성을 해칠 수 있다. 멀티 스레드 환경에서 race condition 생길 수 있다. Redis는 기본적으로 Single Threaded (시간 복잡도 고려해야함. O(N)인 경우는 지양 - keys, getAll 이런것들) Redis 자료구조는 Atomic Critical Section(동시에 트랜잭션이 여러개가 접근하면 안되는 영역)에 대한 동기화를 제공 2023. 3. 6.
Java 기반 웹 백엔드 엔지니어 기술 면접 예상 질문 (feat. chat GPT) 기술 면접 대비 겸 CS 지식 함양을 위해 챗 지피티한테 기술 면접 예상 질문을 부탁했다. 챗 지피티 많이 써보진 않았지만.. 뭔가 이런것들? 에 정말 최적화 되어있는 것 같다. 암튼 챗 지피티가 추천한 10가지 질문 중 정리해볼만한 것들에 대한 포스팅. Spring MVC 작동 원리 MVC는 Model-View-Controller의 약자로 애플리케이션을 역할에 따라 세 가지 모듈로 나누어 구분하는 패턴이다. Model은 데이터 정보를 가공하여 갖고 있는 컴포넌트, View는 시각적인 UI 요소, Controller는 모델과 뷰를 연결해주는 역할이다. 스프링 프레임워크의 MVC는 우선적으로 프론트 컨트롤러가 클라이언트의 모든 요청을 받아 해당하는 개별 컨트롤러 클래스로 위임한다. 개별 컨트롤러 클래스(핸.. 2023. 3. 5.
728x90
반응형