전체 글
-
[Solitour] 성능 vs. 코드 가독성의 갈림길개발 ing 2024. 8. 21. 12:05
프로젝트 개발 하면서 고민사항에 대한 글이다 https://www.solitourist.com/ Solitour - 새로운 나를 찾는 여행Solitour(솔리투어)는 사용자들이 여행한 정보를 기록하고 공유하여 정보나 팁 같은 것들을 이미지와 함께 제공하거나, 사용자들이 모임 기간, 모임 마감일, 성별, 나이, 장소, 참여 인원 등을 설정www.solitourist.com solitour 프로젝트를 하고 있다나는 solitour 프로젝트의 백엔드 개발을 맡아서 하고 있는데 어제 8월 20일에 큰 문제점을 마주하였다 드디어 올게 왔구나 라는 느낌으로 마주하였고 현재 글 쓰면서도 고민을 하고 있다 어떤 문제일까?어쩌면 이러한 문제는 개발을 하다가 필연적으로 마주치는 일 중 하나인 것 같다 그건 바로 성능을 중..
-
[Spring] 즉시(Eager) 로딩 과 지연(Lazy) 로딩Spring JPA 2024. 8. 11. 21:54
Spring jpa 에서 연관관계 매핑을 할때 설정하는 문제이다 JPA 에서 데이터를 조회 할때 eager loading(즉시 로딩), lazy loading(지연 로딩) 으로 하는 두가지 방식이 있다이 두개의 차이점은 한개의 테이블을 조회할때 그 테이블에 연관된 테이블까지 불러오냐 안 불러오냐의 차이점이다 여기서 즉시 로딩(eager)은 연관된 데이터까지 한 번에 불러오고지연 로딩(lazy)은 필요한 시점에 연관된 데이터를 불러온다 어떻게 설정을 하냐?@Entity@Setter@Getter@NoArgsConstructor@AllArgsConstructor@Table(name = "post")public class Post { @Id @GeneratedValue(strategy = Genera..
-
[데이터베이스] index는 무엇인가데이터베이스 2024. 8. 9. 14:37
인덱스란? 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터 베이스 테이블의 검색 속도(조회)를 향상시키기 위한 자료구조이다즉, 저장 공간에 번호를 매기는 것 과 같다고 이해 하면 된다 사용자가 특정 데이터를 찾기 위해 query 문을 입력하게 된다고 하면 테이블의 모든 데이터를 검색해야 한다 -> 시간이 오래 걸림 하지만 index란 자료구조를 사용하게 된다고 하면 데이터와 데이터의 위치를 포함한 자료구조를 생성하여 빠르게 조회 할 수 있다 위 그림과 같이 user가 조회를 한다고 하면 index에서 해당 데이터의 위치를 찾고 table에서 가져온다 기존에는 table에서 Full Scan을 수행해야한다 하지만 index 로 인해 시간을 단축 시킬수 있다 조회(SELECT) 뿐만이 아닌 UPDATE, ..
-
[운영체제] 프로세스와 스레드운영체제 2024. 8. 2. 20:40
이 글은 단지 공부 목적으로 작성 된 글 입니다 프로세스우선 프로세스를 이해 하려면 프로그램 이란 것을 알아야 한다 프로그램이란?-> 프로그램은 각 운영체제에서 mac(.dmg파일), window(.exe파일) 과 같은 컴퓨터에서 실행 할 수 있는 파일을 말한다 저 파일을 실행하지 않은 상태가 프로그램 이라고 부른다프로그램을 개발 하려면 프로그래밍 언어로 코딩 해서 만든다 이러한 실행 하지 않은 상태를 가지고 있는 프로그램을 그저 코드 덩어리 라고 보면 된다 이러한 프로그램을 실행 시켜 동적으로 변해서 프로그램이 돌아가고 있는 상태가 프로세스이다 즉, 컴퓨터에서 작업 중인 프로그램을 의미 한다 이제 우리가 컴퓨터에서 뭐 잘 안될때 작업 관리자를 들어가곤 한다 작업 관리자에서는 현재 실행중인 프로그램..
-
[네트워크] TCP/IP 4계층네트워크 2024. 7. 11. 02:20
글을 작성하기에 앞서TCP/IP 4계층과 OSI 7계층의 차이가 무엇인지 알아 보겠다OSI 7계층에 대해서는 아래글을 참고하면 된다https://hyeonni.tistory.com/85 [네트워크] OSI 7계층 7 LayerOSI 7계층이란?1984년 국제표준화기구(ISO)에서 개발한 모델로써, 네트워크 프로토콜 디자인과 통신 과정을 7개의 계층으로 구분하여 만든 표준 규격이다초창기의 네트워크는 각 컴퓨터마다 시스hyeonni.tistory.comTCP/IP 4계층과 OSI 7계층 차이 두 계층 모두 데이터 통신을 표현한 계층이다OSI 7계층은 데이터 통신에 필요한 계층과 역할을 정확하게 정의한 모델TCP/IP 4계층은 현재 인터넷에서 사용되는 프로토콜이고 좀 더 실무적이면서 프로토콜 중심으로 단순화된..
-
[네트워크] OSI 7계층 7 Layer네트워크 2024. 7. 9. 00:36
OSI 7계층이란?1984년 국제표준화기구(ISO)에서 개발한 모델로써, 네트워크 프로토콜 디자인과 통신 과정을 7개의 계층으로 구분하여 만든 표준 규격이다초창기의 네트워크는 각 컴퓨터마다 시스템이 달랐기 때문에 하드웨어와 소프트웨어의 논리적인 변경 없이 통신할 수 있는 표준 모델이 나타나게 됨 프로토콜MAC라우팅 만들어진 배경 초기에 여러 정보 통신 업체 장비들은 자신의 업체 장비들끼리만 연결이 되어 호환성이 없었다그것의 표준을 정한것이 OSI 7계층 이다 특징 통신이 일어나는 과정을 7단계로 구분OSI(Open System Interconnection) 개방형 시스템 상위 계층의 프로토콜이 제대로 동작하기 위해서는 하위의 모든 계층에 문제가 없어야 한다설계가 간단해지고 통신이 일어나는 흐름을 한눈..
-
[Spring Boot] Spring Boot 에서 Mysql 설정 값들 및 schema.sql, data.sql 초기화Spring Boot 2024. 7. 8. 02:11
이 글은 프로젝트를 진행 하면서 몰랐던 부분들을 정리하는 글이다스프링 3.x 기준으로 작성된 글입니다 JPA 데이터 베이스 초기화@Entity@Getter@Builder@Table(name = "user")@AllArgsConstructor@NoArgsConstructorpublic class User { @Id @Column(name = "user_id") @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "user_name) private String name; } 이 방식은 @Entity가 붙은 클래스들을 스캔해서 자동으로 스키마를 생성해주는 방식이다이 설..
-
[Spring] DB 상태 테이블, Enum 관리 Converter 사용해보자Spring JPA 2024. 7. 4. 11:40
이 글은 프로젝트를 진행하면서 공부한 내용이다들어가기erd 테이블 예시이다 위와 같이 회원 Table 에서 user_status_id 는 값이 정해져 있다 (휴먼, 활성화, 삭제 등등)user_sex 도 정해져 있다 (남자, 여자)image_status 도 정해져 있다 (썸네일, 본문, 회원) ddl 문을 보면 다음과 같다 CREATE TABLE `user` (... `user_status_id` ENUM('휴먼', '활성화', '삭제') NOT NULL, `user_sex` ENUM('남자', '여자') NULL, ... );이와 같이 값이 정해져 있는 데이터들은 Spring에서 어떻게 해야할까?=> Enum Converter를 사용하면 된다 사용법 UserStatus enum 클래스import ..