분류 전체보기
-
NoSQL과 RDBMS의 특징과 차이점오늘/기술면접주제 2024. 1. 5. 10:46
NoSQL 이란? 특정 데이터 모델에 대해 특정 목적에 맞추어 구축되는 DB 현대적 어플리케이션 구축을 위한 유연한 스키마를 갖춤 비관계형 DB RDBMS의 한계를 극복하기 위한 새로운 형태 작동방식 큰 데이터볼륨, 짧은 지연시간, 유연한 데이터 모델이 필요한 곳에 최적 다른 DB와 다르게 데이터 일관성 제약 일부를 완화하여 이루어짐 특징 1. RDBMS와 달리 데이터간 관계를 정의하지 않음 2. 분산형 구조 여러 서버에 데이터를 분산 저장 3. 유연한 스키마 데이터를 저장하는 컬럼이 각각 다른 이름과 다른 데이터타입을 갖는 것이 허용됨 장점 1. 유연성 유연한 스키마를 제공하여 빠르고 반복적인 개발 가능 NoSQL DB를 반정형 및 비정형 데이터에 이상적으로 만들어줌 2. 저렴한 비용 RDBMS 에 비..
-
도커 세번째프로그래밍/Docker 2024. 1. 4. 00:15
도커이미지의 특징 1. 바이너리, 라이브러리 및 설정값 포함 2. 변경되는 상태값을 보유하지않음 stateless 3. 변하지 않음 immutable, RO (Read Only) 도커 이미지 받을때 팁 프로젝트 요구사항이 특별히 debian에 초점을 맞추지 않았다면 alpine 권장 만약 debian에 초점이 되어있다하더라도 특정 설정의 제약이 없다면 slim 키워드가 있는 버전을 쓰는것을 권장 이미지 구조 이미지는 기본적으로 계층구조(Layer)이다. 레이어로 만드는 이유 -> 기존의 이미지 재활용 가능 (공간효율성, 모듈화 가능) 여러개의 layer를 하나의 FS로 사용하게 해주는 기능을 UFS (union filesystem) 이라고 한다. docker image inspect [이미지이름] doc..
-
24/01/03 잼렐로 KPT스파르타코딩클럽/스프링 팀 프로젝트 - Trello 2024. 1. 3. 20:20
오늘 일을 내일로? 잼렐로와 함께라면 바로바로! 😎 GitHub JamminTeam JamminTeam has one repository available. Follow their code on GitHub. github.com 😎 UI/UX 😎 ERD 😎 KEEP 설계 코드 컨벤션 통일을 함으로써 코드 통일성을 확보하여 가독성을 높혀서 좋았습니다. 컨벤션 덕분에 통합하기에 어려움이 적었습니다. 상황 간 메서드명을 규칙을 정함으로 써, 메서드를 활용해야 할 때 예상이 가능해서 좋았습니다. 코드 리뷰 깃허브의 적극적인 PR의 코드 리뷰 활용으로 부족한 점을 파악함으로써 실력 향상이 될 수 있었습니다. 상호 피드백을 통해 미처 발견하지 못한 부분을 확인 할 수 있어 좋았습니다. 회의 정해진 시간에 회의 및..
-
도커 두번째프로그래밍/Docker 2024. 1. 2. 21:27
도커 주의사항 동작 중인 컨테이너를 exit하면 컨테이너가 꺼진다. 그렇지만 일반적인 종료가 아닌 강제종료 이기 때문에 exit는 권장하지 않음 컨트롤키를 꾹 누른 상태에서 P Q를 누르면 컨테이너가 계속 동작하는 채로 밖으로 나가진다 그리고 만약 exit를 하여 컨테이너를 꺼버렸다면 docker start 컨테이너ID 또는 컨테이너이름으로 다시 실행 시킨 후 docker exec -it 컨테이너ID 또는 컨테이너 이름 bash mysql을 예로 들면 /etc/init.d/mysql start mysql -uroot -p 이렇게 다시 접속 가능 Virtual Ethernet 은 docker0 과 컨테이너 사이에 존재하는 터널 LXC가 가진 네트워크 기술 중 하나로 네임스페이스가 있는데 그 네임스페이스에 ..
-
도커프로그래밍/Docker 2023. 12. 31. 23:43
CICD. 더 나아가 쿠버네티스까지의 학습을 위해 패캠 강의를 구매하여 도커를 공부하기 시작했다. 첫 글은 도커의 기초를 작성하였다. 도커의 코어 5가지 1. 이미지 2. 컨테이너 3. 네트워크 4. 리소스 매니지먼트 5. 볼륨 컨테이너 어플리케이션을 언제든 실행 가능 하도록 필요한 요소를 하나의 런타임 환경으로 패키징한 논리적인 공간 어플리케이션과 필요 요소를 하나로 패키징하여 실행하게 만든 운영시스템을 가상화한 경량의 격리된 프로세스 -> microVM 이라고도 함 -> OS 수준의 가상화 제공 -> 독립성을 갖기 때문에 다른 컨테이너에 영향을 주지않는 stateless 환경 특징 1. 컨테이너는 최소한의 이미지를 통해 실행되므로 경량이다. 2. 어떤 환경에서든 동작가능하기에 이식성을 갖고 있다. 컨..
-
@EntityGraph스파르타코딩클럽/스프링 팀 프로젝트 - Trello 2023. 12. 29. 16:31
어떻게 EntityGraph를 알게 되었나 지금 프로젝트에서 보드 Read을 구현하기 위해서는 보드를 가져올때 컬럼 (이하 카테고리) 과 컬럼 안에 들어있는 카드의 제목, 이미지, 배경색, 댓글 수, 협업자 에 대한 정보를 가져와야했다. 하지만 게시판과 카탈로그는 연관관계가 설정되어 있지만, 게시판과 카드는 연관관계가 설정되어 있지 않기에 카탈로그를 통해 카드의 정보를 가져와야했다. 처음에는 단순히 Card 정보를 받아오는 ResponseDto를 생성하여 그 안에 값을 다 집어넣으려고 하였다. 그러나 생각을 할 수록 연관관계를 맺지 않은 엔티티에서 정보를 잘 가져오는 것이 쉽지 않아보여서 어떻게 이것을 해결할지 튜터님을 통해 정보를 얻어내었고 그것이 @EntityGraph 이다. @EntityGraph ..
-
Adapter Pattern오늘/Today I.. 2023. 12. 28. 17:59
공부하게 된 계기 프로젝트에서 커스텀 애너테이션을 수정해야 할 일이 생겼다. 전 프로젝트에서 쓰던 것을 그대로 쓰려하였으나, DB 테이블명이 바뀌어서 해당 코드 또한 수정이 불가피하였다. 어떤식으로 수정해야 정상적으로 동작하는지 확신이 들지 않아 여러 블로그를 찾아보고, 튜터님께 질문을 하는 등의 노력 끝에 해결방안을 찾아냈다. 그 과정에서 공부하게 된 것이 바로 어댑터 패턴이기에 TIL로 기록해보고자 한다. Adapt Pattern? 클래스의 인터페이스를 사용자가 기대하는 다른 인터페이스로 변환하는 패턴. 서로 호환되지 않는 두 클래스를 호환되도록 만들어준다. 소프트웨어 디자인 패턴에서 구조패턴에 속해있다. 종류 1. 클래스에 의한 Adapter (상속 사용) 어댑터 클래스가 실제 클래스를 상속받고, ..
-
CascadeType.ALL 과 REMOVE의 차이스파르타코딩클럽/스프링 팀 프로젝트 - Trello 2023. 12. 27. 15:15
보드를 구현하면서 보드를 삭제할 때 아래에 종속된 카테고리와 댓글을 같이 정리해야하므로 엔티티 애너테이션에 cascade를 붙여두었다. 하지만 CascadeType을 정할때 REMOVE를 사용할지 ALL을 사용할지 판단이 쉽지 않았다. 먼저 Cascade 란? JPA에서 엔티티의 상태변화를 관련 엔티티에 전파하는 옵션이다. SQL에서는 외래키 제약조건으로 쓰이는데, 참조 무결성을 유지하기 위해 부모 테이블에 변경사항이 생길때 자식 테이블에 자동으로 동일한 작업을 수행하도록 할 때 사용된다. 스프링에서 CascadeType 종류엔 뭐가 있나 CascadeType.ALL // 모든 cascade 옵션을 적용 CascadeType.PERSIST // 부모엔티티 저장 시 연관된 자식 엔티티도 함께 저장 Casc..