본문 바로가기
반응형

전체 글242

[Spring Boot] 엔티티 관련 어노테이션 @Entity 테이블과 일대일로 매칭되는 클래스 @Table 클래스 이름과 테이블 이름을 다르게 지정해야하는 경우 사용한다. @Table(name = 값) @Id 테이블의 기본 값 역할로 사용된다. 모든 엔티티는 @Id 어노테이션이 꼭 필요하다. @GeneratedValue @Id 어노테이션과 함께 사용된다. 해당 필드의 값을 어떤 방식으로 자동으로 생성할지 결정할 때 사용한다. AUTO IDENTITY SEQUENCE TABLE @Column 필드에 몇가지 설정을 더할 떄 사용한다. name nullable length unique @Transient 엔티티 클래스에는 선언돼 있는 필드지만 데이터베이스에서는 필요 없을 경우 2023. 2. 20.
분산 시스템의 특징 분산 시스템이 필요한 이유 데이터베이스를 중심으로 여러대의 서버로 scale-out이 가능하면서도 상태와 데이터 공유가 가능하고 유저가 사용하는 기능에는 변화가 없는 소프트웨어가 필요해졌다. 분산 시스템 특징 Concurrency 자원은 공유하면서 리소스 내에서 동시에 여러가지 작업을 수행한다. 동시 실행 자원을 늘려서 처리량을 늘릴 수 있다. No Global Clock 시스템의 각 부분이 비동기식으로 동작한다. 어떤 부분의 상태 때문에 다른곳에 Lock이나 Bottleneck이 걸리면 안된다. Independent Failure 시스템의 한 부분의 장애가 전체 시스템에 장애를 주면 안된다. 분산 시스템 고려 요소 1. Heterogeneity 서로 다른 시스템에 설치 가능해야 한다. OS, HW 관계.. 2023. 2. 18.
[Spring Boot] HTTP Request 어노테이션 - GetMapping, PostMapping, PutMapping, DeleteMapping API에 사용하는 HTTP 메서드 어노테이션 스프링 4.3 이후로는 @RequestMapping 메서드는 사용하지 않고 아래 어노테이션들을 사용한다. method 요소를 정의하지 않아도 된다. @GetMapping @PostMapping @PutMapping @DeleteMapping @RestController 어노테이션이 지정된 클래스는 @RequestBody를 생략할 수 있다. @RequestBody 어노테이션은 자동으로 JSON 형식의 값을 전달한다. GET 서버에서 값을 가져올 때 사용하는 API URL 경로나 파라미터에 변수를 넣어 요청한다. 1. @PathVariable을 이용한 GET 메서드 구현 ex) https://test.com/api/v1/get-api/variable1/{varia.. 2023. 2. 18.
제어 역전 IoC, 의존성 주입 DI, 관점 지향 프로그래밍 AOP 제어 역전 IoC (Inversion of Control) 보통의 자바 개발에서는 사용하려는 객체를 선언하고 해당 객체의 의존성을 생성한 후 객체에서 제공하는 기능을 사용한다. => 객체의 관리를 개발자가 직접 제어한다. 하지만 제어 역전을 특징으로 하는 스프링은 사용할 객체를 직접 생성하지 않고 객체의 생명주기 관리를 외부(스프링 컨테이너 또는 IoC 컨테이너)에 위임한다. => 객체의 관리를 컨테이너에 맡긴다. 장점 제어 역전을 통해 의존성 주입(DI), 관점 지향 프로그래밍(AOP) 등이 가능해진다. 개발자는 비지니스 로직을 작성하는데 집중할 수 있다. 의존성 주입 DI (Dependency Injection) 사용할 객체를 직접 생성하지 않고 외부 컨테이너가 생성한 객체를 주입받아 사용하는 방식 .. 2023. 2. 11.
프로세스 vs 스레드 차이점 그리고 멀티프로세스와 멀티스레드 프로세스운영체제로부터 자원을 할당받는 작업의 단위실행중인 프로그램프로세스 내부에는 최소 하나의 스레드를 가지고 있다.프로세스끼리는 메모리 공유가 불가능하다. => 프로세스끼리는 메모리 공유가 안되기 때문에 HTTP, TCP 를 사용하면 된다. 스레드프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위프로세스 내에 여러개 생길 수 있다.스레드끼리는 메모리 공유가 가능하다. 프로세스스레드각각 독립된 메모리 영역을 할당해주기 때문에 프로세스간 자원을 공유하지 않는다.스레드 간 메모리를 공유한다.  멀티 프로세스하나의 프로그램을 여러개의 프로세스로 구성하여 각 프로세스가 하나의 작업을 처리하는 것 멀티 프로세스를 사용하는 이유?서버 한대의 설능에는 한계가 있다. scale-out이 필수이다.서버 아키텍처를 구성.. 2023. 2. 5.
프로그래머스 과제테스트 연습 사이트 프로그래머스에 기업의 개발 과제를 연습해볼 수 있는 사이트가 있다. 1시간~3시간 짜리 과제이기때문에 조만간 시간 내서 하나 풀어보고 싶다. 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2023. 2. 5.
Github 자기소개 꾸미기 on README.md 회사 친구 Github 보다가 잘 꾸며놓은걸 보고 오 나도 따라해야겠다! 라는 생각에 검색해봤고 열심히 깃꾸 해봤다 ^^ 은근 재미있고 뿌듯하다. 우선 Repository를 자기 아이디로 만들어준다. README 생성 후 그 안에 자신이 원하는 내용들로 채우면 된다. 유용한 링크 ! 뱃지 아이콘 모음 skills, test 등 다양한 뱃지가 있다. GitHub - Envoy-VC/awesome-badges: 😎 A curated list of GitHub badges for your next project 😎 A curated list of GitHub badges for your next project - GitHub - Envoy-VC/awesome-badges: 😎 A curated list of .. 2023. 2. 2.
[공유] 나의 알고리즘 공부 기록 github with 파이썬 정말 쉽지 않은 알고리즘. 코딩테스트 코테의 세계 매일은 못하고... 요즘에는 그래도 일주일에 한번정도 공부하는중이다~ GitHub - nayoung240/algorithm: 알고리즘 문제 풀고 정리하기 with 파이썬 알고리즘 문제 풀고 정리하기 with 파이썬. Contribute to nayoung240/algorithm development by creating an account on GitHub. github.com 내용 유형별 알고리즘 문제 / 풀이 언어: 파이썬 python 알아두면 쓸모있는?! 나만의 Cheat seat 2023. 1. 30.
[운영체제] CISC, RISC 란? 차이점 23.01.30 개발 한 스푼 에서의 질문으로 나와서 검색하고 정리하기. 운영체제쪽이라 솔직히 잘 모르는 부분이다.. 어렵다. CISC (Complex Instruction Set Computer) 한글로 번역하면 "복잡한 명령어 세트 컴퓨터" 다양한 종류와 복잡한 명령어로 이루어진 CPU 하드웨어 중점이다. 설계 목적: 하나의 명령어 당 최대한 많은 작업을 하게 하는 것 단점 명령어가 복잡하여 디코딩 시간이 오래걸리고 복잡하다. 명령어의 길이가 달라서 동시에 여러개 명령 처리가 어렵다. RISC (Reduced Instruction Set Computer) 한글로 번역하면 "단축 명령어 세트 컴퓨터" 1980년 제시된 CPU의 명령어셋 아키텍처 개념 소프트웨어 중점이다. 설계 목적: 프로그램의 길이는 .. 2023. 1. 30.
728x90
반응형