전체 글29 프로세스와 쓰레드 개념적 차이 프로세스는 실행 중인 프로그램의 인스턴스입니다. 쓰레드는 프로세스 내에서 실행되는 작업의 단위입니다. 메모리 공간 차이 프로세스는 독립된 메모리 공간을 가지고 서로 간섭 없이 독립적으로 실행됩니다. 쓰레드는 프로세스 내에서 실행되므로 프로세스 내의 쓰레드들은 메모리 공간을 공유하며 상호작용이 간단합니다. 통신 차이 프로세스 간 통신은 복잡하며 운영체제가 제공하는 IPC 기술을 사용해야 합니다. (IPC : Inter Process Communication) : 프로세스들간의 의사소통 쓰레드 간 통신은 프로세스 내에서 메모리 공유하기 때문에 간단하게 이루어질 수 있습니다. 생성과 소멸 차이 프로세스 생성 및 소멸은 비용이 크며, 자원 소모가 많습니다. 쓰레드 생성 및 소멸은 상대적으로 더 가볍.. 카테고리 없음 2024. 1. 11. 객체지향 프로그래밍 핵심키워드 절차지향 프로그래밍과 차이점, 캡슐화, 접근제한자, 상속, 다형성 객체지향 프로그래밍(OOP)은 프로그래밍 패러다임 중 하나로, 현실 세계의 객체와 유사한 ‘객체’라는 개념을 중심으로 프로그램을 구성하는 방식입니다. 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체로 만들고, 객체들 간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법 객체 지향 프로그래밍의 특징 추상화 객체에서 공통된 속성과 행위를 추출하는 것 불필요한 정보는 숨기고 중요한 정보만을 표현함으로써 프로그램을 간단하게 만다는 것 캡슐화 데이터 구조와 데이터를 다루는 방법들을 결합 시켜 묶는 것(변수와 함수를 하나로 묶는 것) 낮은 결합도를 유지할 수 있도록 설계하는 것 속성과 기능을 정의하는 변수와 메소드를 클래.. 카테고리 없음 2024. 1. 9. 쿠키, 세션의 개념과 차이 쿠키란? 클라이언트에 저장되는 작은 텍스트 파일로, 웹 서버가 이용자의 브라우저에 전송한 정보를 저장합니다 쿠키는 웹 서버와 브라우저 간의 상태 정보를 유지할 때 사용됩니다 쿠키의 장점 서버의 자원을 사용하지 않기 때문에 서버의 부하를 줄일 수 있습니다 쿠키의 단점 클라이언트에 저장되어 있기 때문에 변조나 탈취 등 보안에 문제가 있습니다 쿠키는 용량이 제한되어 있기 때문에 대용량의 정보를 저장하기에는 적합하지 않습니다 세션이란? 서버 측에서 사용자 정보를 저장하고 관리하는 기술 각각의 사용자에게 고유한 세션 ID를 할당하여 쿠키 또는 URL 매개 변수를 사용하여 서버에서 해당 사용자의 정보를 참조합니다 세션의 장점 사용자의 정보를 보안성 높게 저장하고 관리할 수 있습니다 세션의 저장 용량에 제한이 없어,.. 카테고리 없음 2024. 1. 5. 다대다 관계에서 중간테이블 만들기 / 순환참조 해결 문제 다대다 관계를 가지는 entity간 연관관계 설정 원인 관계형 데이터베이스에서는 정규화된 테이블 2개로 다대다 관계를 표현할 수 없고 @ManyToMany로 만들어진 연결 테이블에는 추가적인 데이터들을 추가할 수가 없음. 그리고 예상하지 못한 쿼리들이 발생함에 따라 성능이 저하됨 해결 두 테이블 사이에 연결 테이블(조인 테이블)을 직접 만들고 entity로 승격시켜주어 관계를 일대다, 다대일 관계로 풀어줌(@ManyToMany 사용 지양) User entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(nullable = false, unique = true) p.. TIL 2024. 1. 3. [Spring] @JsonInclude(JsonInclude.Include.NON_NULL) 제목, 작성자명(nickname), 작성 날짜를 조회하기 PostResponseDto에는 여러가지 필드들이 있지만 위의 3가지만 출력을 해보기로 하였다 PostResponseDto @Getter @NoArgsConstructor @AllArgsConstructor public class PostResponseDto { private Long id; private String nickName; @JsonFormat(pattern = "yyyy-MM-dd") private LocalDateTime createdAt; @JsonFormat(pattern = "yyyy-MM-dd") private LocalDateTime modifiedAt; private String title; private String c.. TIL 2023. 12. 22. N+1 문제 N + 1문제란? - 엔티티 1개를 조회할 때 1:N 혹은 N:1 관계를 맺고 있을 때 그와 관련된 조회 쿼리문이 N+1번 쿼리가 발생하는 문제 N + 1 문제 발생 시점 - 즉시 로딩으로 데이터를 불러오는 경우 - 지연 로딩으로 불러온 데이터의 하위 데이터를 다시 조회하는 경우 N + 1 문제 해결방법 GlobalFetch 엔티티를 생성할 때 결정되는 연관전략 @ManyToOne에 fetch 타입으로 LAZY를 넣어주면 된다 public class Comment { ... @ManyToOne(fetch = FetchType.LAZY) // fetch 타입으로 LAZY를 넣어줌 @JoinColumn(name = "thread_id") Board thread; } FetchJoin DB에서 데이터를 가져올.. 카테고리 없음 2023. 12. 20. 프로그래머스 숫자 [짝꿍] / [체육복] 짝꿍 문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/131128 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제설명 제한사항 3 ≤ X, Y의 길이(자릿수) ≤ 3,000,000입니다. X, Y는 0으로 시작하지 않습니다. X, Y의 짝꿍은 상당히 큰 정수일 수 있으므로, 문자열로 반환합니다. 입출력 예 & 입출력 예 설명 입출력 예 #1 X, Y의 짝꿍은 존재하지 않습니다. 따라서 "-1"을 return 합니다. 입출력 예 #2 X, Y의 공통된 숫자는 0으로만 구성되어 있기 때문에,.. 카테고리 없음 2023. 12. 18. 이전 1 2 3 4 5 다음