。゚(*´□`)゚。

코딩의 즐거움과 도전, 그리고 일상의 소소한 순간들이 어우러진 블로그

분류 전체보기 397

트랜젝션

트랜젝션이란? 원자성이란? 트랜젝션(Transaction) 작업의 완전성을 보장해주는 것으로, 논리적인 작업을 모두 완벽하게 처리하거나 처리하지 못할 경우에는 원 상태로 복구해서 작업의 일부만 적용이 되는 현상이 발생하지 않게 만들어주는 기능 사용자 입장 : 작업의 논리적 단위 이해 가능 시스템 입장: 데이터들을 접근, 변경하는 프로그램의 단위가 됨 특성 ACID 원자성(Atomicity) 만약 트랜젝션 중간에 어떠한 문제가 발생한다면 트랜젝션에 해당하는 어떤 작업 내용도 수행되어서는 안되며 아무런 문제가 없을 때만 모든 작업이 수행되어야 한다. 일관성(Consistency) 트랜젝션이 완료된 다음의 상태에서도 트랜젝션이 일어나기 전의 상황과 동일하게 데이터의 일관성을 보장해야한다. 고립성(Isolati..

Stream

스트림은 java8부터 추가된 배열이나 컬렉션의 요소(List, Map, Set)들을 더 편리하게 가공하고 처리하도록 해주는 반복자 장점: 람다식 사용과 연산 과정에서 불필요한 변수를 남기지 않기 때문에 코드가 간결해짐, 내부 반복자를 사용해 병렬처리가 쉬움. Java 8 API에 새로 추가된 기능 스트림을 이용하면 선언형으로 컬렉션 데이터를 처리할 수 있다 멀티스레드 코드를 구현하지 않아도 데이터를 투명하게 병렬로 처리할 수 있다. 스트림 사용 전 @ToString @Getter @AllArgsConstructor public class Cake { private String name; // 케익 이름 private Integer price; // 가격 } // 케이크 목록 List cakes = Ar..

2. 컴퓨터 네트워크 정리

1. TCP 송신부와 수신부의 연결을 확인하는 연결형 서비스 패킷이 전달되는 회선이 정해져 있는 가상 회선 패킷 교환 방식 사용 데이터 손실이 없음을 보장하므로 신뢰성이 높음 연결할 때는 3-way 핸드셰이킹, 해제할 때는 4-way 핸드셰이킹을 함 신뢰성 보장 방법 흐름 제어: 수신부와 송신부 간 데이터 처리 속도 제어 혼잡 제어: 송신부의 데이터 전달 속도와 네트워크 속도 차이 해결 오류 제어: 데이터의 오류 검출 및 재전송 2. UDP 송신부와 수신부의 연결이 보장되지 않는 비연결형 서비스 패킷이 서로 다른 회선으로 교환될 수 있는 데이터그램 패킷 교환 방식 데이터의 신뢰성이 낮음 체크섬(checksum)필드를 이용해 최소한의 오류 검출 가능 3. HTTP 인터넷에서 데이터를 전송하기 위한 클라이언..

CS 2023.12.04

2.4 REST

2.4.1 REST란 Representational State Transfer HTTP 통신을 활용하기 위해 고안된 아키텍처 Representational은 인터넷상의 자원을 URI(Uniform Resource Idenfifier)로 나타낼 수 있음을 의미한다. 클라이언트는 URI로 표현된 자원을 HTTP 메서드를 이용해 CRUD 연산을 할 수 있다. State Transfer 는 요청받은 자원의 상태를 전달하는 것. 특징: 일관된 인터페이스 자원을 나타내는 URI를 HTTP 메서드로 조작하는 일관된 인터페이스를 사용한다. 따라서 HTTP를 따르는 모든 플랫폼에서 REST를 사용할 수 있다. 클라이언트-서버 구조 클라이언트와 서버 간에 요청-응답의 독립적인 구조를 갖는다. 무상태성 서버에서 클라이언트의..

CS 2023.12.04

2.3 HTTP / HTTPS

HTTP 인터넷 상에서 데이터를 전송하기 위한 프로토콜로,TCP/IP 4계층에서 응용 계층에 속한다. 특징 1. 비연결성 : 클라이언트에서 요청을 보낸 후 서버로부터 응답을 받으면 연결을 끊는 것/ 단점 보완 위해 HTTP Keep Alive 를 사용함(마지막 응답이 후 일정 시간 동안 연결 유지, 클라이언트에서 HTTP요청을 보낼 때 헤더에 추가해서 보내면 서버에서 유지할 시간을 헤더에 추가해서 응답함) 2. 무상태 : 서버에서 클라이언트의 상태를 저장하지 않는 것. 그렇기 때문에 클라이언트는 요청에 필요한 데이터를 모두 가지고 있어야하고(쿠키), 또는 서버가 클라이언트로 받은 요청 사항을 모두 저장해야함(세션). HTTP 메세지 HTTP에서는 클라이언트와 서버가 통신하기 위해 정형화된 데이터인 HTT..

CS 2023.12.01

[BleuAuction 리팩토링] 11/30(목) 아직 시작도 안 했다,,!

[해온 것] [REFACTOR, TEST] Menu 리팩토링 및 테스트 #98 https://github.com/NC7-BleuAuction/bleuauction_be/pull/110 [REFACTOR, TEST] Menu 리팩토링 및 테스트 #98 by seunghyun333 · Pull Request #110 · NC7-BleuAuction/bleuauction_be 작업 PR #98 작업내역 Menu Controller 및 Service Refactoring Menu기능의 TestCase제작 고려사항 지금까지 무조건 등록, 수정, 삭제 가능한 경우의 테스트 케이스를 만들어 보았습니다.. 안 되는 상황일 때 테 github.com [다음 회의까지 해올 것] Notice 컨트롤러, 서비스 수정 및 테스..

[BleuAuction 리팩토링] 11/23(목) 백 기능 분배

기현오빠가 면접 보고와서 받은 질문을 공유해줬다. 시간복잡도? / 오버로딩, 오버라이딩/ 정렬 알고리즘(버블, 퀵?) / 레디스 / 레디스 메세지 뭐에 대해 말해바라/ 시간복잡도 시간 복잡도란 크기 n의 모든 입력에 대해 걸리는 최대의 시간(최악의 경우) 시간 개념보다는 알고리즘이 실행될 때 동작하는 연산의 횟수가 몇번인지 세는것 시간 복잡도가 작은 알고리즘일수록 실행 시간이 짧아지므로 효율적이다. 따라서, 시간 복잡도를 고려하여 알고리즘을 설계하고 최적화하는 것이 중요하다. / 공간 복잡도는 알고리즘이 결과를 도출하는 데 필요한 공간 값 정렬 알고리즘 - n개의 숫자가 입력으로 주어졌을 때 사용자가 지정한 기준에 맞게 정렬하여 출력하는 알고리즘 선택 정렬 : 이름에 맞게 현재 위치에 들어갈 값을 찾아 ..

[BleuAuction 리팩토링] 11/20(월) BleuAuction EndPoint Refactoring

기현오빠가 탈주를 시도했다가 모두의 설득으로 잡혔다. 내가 했던 생각을 똑같이 하고 그만두려고 한 것 같다. 하지만 종1님이 우선순위를 두고 차례대로 해보라고, 프로젝트 놓으면 안 된다고 등 좋은 얘기들을 해줘서 잡혀버렸다. 그리고 내 프로젝트 짝꿍이었던 오빠가 며칠 째 나오지 않고 있다. 취직에 힘쓰느라 여유가 없어보인다. 하지만 그 누구도 찾지 않는다. 이젠,, 강제로 해야하는 학원이 아니니까. 현욱이오빠도 취직준비로 빠지다보니 기능이 빵꾸가 많이 났다. 그 부분은 종원님께 갔다. 내가 시도해보고 싶었지만 왜 용기가 안 나는 걸까?! 로그인과 결제.. 하면 할텐데 겁이 나는 이유는 무엇일까?! 컨피그니 시큐리티니 아직 잘 몰라서 그런 것 같다. 공부가 필요하다. 이번 회의 내용은 이다. [BleuAu..

[BleuAuction 리팩토링] 11/16(목) 도메인 수정

중간에 면접도 한 번 잡히고 자소서 쓰고, 포트폴리오를 만들고 다른 공부에도 힘을 쏟다보니 리팩토링 작업이 많이 후순위로 밀렸다. 그리고 나 뿐만 아니라 모두 같은 입장이라 집중을 잘 하지 못 하는 것 같았다. 그만두는 게 맞을까? 싶다가도 프로젝트에 관한 이야기만 하는 것이 아니라 취직에 관한 이야기, 코딩 이야기(종1🫡), 그냥 적당한 사는 이야기를 일주일에 두 번 아침 일찍 디스코드로 회의하는 느낌이 싫지 않아 계속 열심히 해야겠다고 생각했다. 오빠들이 얘기하는 것 나한테 거의 다 새로운 얘기들이라 무조건 다 도움이 된다. 다들 맡은 부분을 완성을 못 해와서 다음 회의 때까지 힘 닿는 데까지 해오기로 했다. 마감 기한이 정해져 있는 것이 아니다 보니 나도 재촉하기 싫고, 또 재촉 당하기도 싫은데 모..