。゚(*´□`)゚。

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

분류 전체보기 393

[BleuAuction 리팩토링] 12/7(목) 종1's 코드리뷰2

[해온 것] 종원 리뷰 참고해서 Notice 수정 https://github.com/NC7-BleuAuction/bleuauction_be/pull/116 [Refactor, Test] Notice 도메인 작업 #113 by seunghyun333 · Pull Request #116 · NC7-BleuAuction/bleuauction_be 작업 PR #113 작업내역 Notice Controller 및 Service Refactoring Notice기능의 TestCase제작 다음 차례는 ,,, 두근두근 github.com [앞으로 할 것] 서비스 구조를 조회만 하는 Service, 비즈니스 로직을 담당하는 Service로 분류를 진행할 예정. Controller에서의 기능은 동일하게 할 예정 http..

카테고리 없음 2023.12.07

Managed Language / Unmanaged Language

Managed Lanaguage 메모리 관리를 언어상에서 알아서 해주는 언어 특정 런타임 환경 내에서, 프로그램을 생성하도록 설계된 언어. 인터프리터나 VM을 지원하고, 프로그램의 코드가 이 위에서 동작하도록 설계되어 있음. (소스코드 컴파일 & 동작) VM은 메모리 관리(Garbage Collecotr) 역할을 수행한다. => Java나 Python 을 사용할 때, 메모리에 대한 생각은 하지 않고 작성한다. => JAVA, Python, C#, Javascript Unmanaged Language 사용자가 직접적으로 하드웨어 CPU, Memory 를 관리할 수 있다. VM과 같은 런타임 환경의 관리를 받지 않는 언어. 일반적인 컴파일 수행 >> bytecode 생성 >> 실행파일 생성 => C, C++..

RuntimeException / IllegalArgumentException

RuntimeException: RuntimeException 클래스와 그 하위 클래스들은 주로 프로그래머의 실수나 잘못된 프로그램 논리에 기인하는 런타임 시 발생하는 예외를 나타냅니다. 컴파일러가 이 예외들을 체크하지 않기 때문에, 코드에서 예외 처리를 강제하지 않습니다. 이는 프로그래머가 명시적으로 이 예외들을 처리하지 않아도 되는 편리함을 제공하지만, 동시에 적절한 처리가 이루어져야 합니다. IllegalArgumentException: IllegalArgumentException은 주로 메소드에 전달된 인수가 잘못된 경우에 발생합니다. 즉, 메소드의 매개변수로 전달된 값이 허용되지 않는 범위일 때 던져집니다. 예를 들어, 메소드가 특정 범위의 값을 요구하는데 그 범위를 벗어난 값을 받으면 이 예외..

3.1 데이터베이스의 종류

3.1 데이터베이스의 종류 종류 : 계층형 데이터베이스, 네트워크형 데이터베이스, 관계형 데이터베이스, NoSQL 3.1.1 데이터베이스란 데이터베이스 : 사용자나 프로그램에서 사용하기 위해 저장 및 관리하는 데이터 집합 특징 실시간 접근 : 데이터베이스에 언제든지 접근해 필요한 처리를 할 수 있다. 동시 공유 : 여러 사용자가 데이터베이스 접근할 수 있다. 지속적 변화 : 데이터의 갱신, 삽입, 삭제 등을 통해 계속해서 변화한다. 내용 기반 참조 : 데이터의 값을 이용해 데이터에 접근할 수 있다. 구성 개체(entity) : 데이터로 표현하려는 대상을 의미하며, 하나 이상의 속성으로 구성한다. 속성(attribute) : 개체의 특성과 상태를 나타내며, 데이터베이스를 구성하는 가장 작은 논리적 단위이다..

CS 2023.12.04

[BleuAuction 리팩토링] 12/4(월) 종1's 코드리뷰

[해온 것] https://github.com/NC7-BleuAuction/bleuauction_be/pull/116 [Refactor, Test] Notice 도메인 작업 #113 by seunghyun333 · Pull Request #116 · NC7-BleuAuction/bleuauction_be 작업 PR #113 작업내역 Notice Controller 및 Service Refactoring Notice기능의 TestCase제작 다음 차례는 ,,, 두근두근 github.com 작업내역 Notice Controller 및 Service Refactoring Notice기능의 TestCase제작 열심히 Notice 도메인 작업을 했다. 컨트롤러에서 서비스로 로직 옮기기! 주문, 주문메뉴, 메뉴 3..

Optional

Optional은 Java 8에서 도입된 클래스로, 값이 존재할 수도 있고 없을 수도 있는 컨테이너. 주로 NullPointerException을 방지하고자 할 때 사용 => null인지 아닌지, 안전하게 판단하고 싶어서. 검증을 확실하게 하고 싶을 때. 권장 사용방법: getter에서만 쓰고, 비지니스로직에서는 나오지 않는게 맞음. optional (한개의 객체) == null 이 절대 성립이 안 함 : jpa에서는 절대 적용 안 됨. nullpointexception 발생하고 싶어도 발생을 못 함. ofNullable() 메서드: Optional.ofNullable(T value) 메서드는 주어진 값이 null이 아니면 해당 값을 가지는 Optional 객체를 생성하고, 값이 null이면 빈 Opti..

트랜젝션

트랜젝션이란? 원자성이란? 트랜젝션(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