본문 바로가기

일단고39

람다식(Lambda Expressions) 베하! 안녕하세요 여러분, 일단고입니다. 여름 휴가는 잘 다녀오셨나요? 오늘은 개발하면서 알게된 ‘람다 캡처링’에 대해서 알아보겠습니다. 요즘은 소스 관리와 협업의 필요성 때문이라도 람다식을 이용한 선언형 프로그래밍이 유행 혹은 지향하는 조직들이 많이 있습니다. 각종 개발 언어를 가리지 않는 이 람다식에 대해 먼저 알아볼게요! 람다식이란 람다식이란(Lambda Expressions) 메서드를 하나의 식으로 표현한 것입니다. 즉 함수의 식별자와 반환값 없이 함수를 구현하기 때문에 익명함수(anonymous function)라고 부르기도 합니다. 람다식은 java언어에서는 하나의 익명 클래스로 분류됩니다. 메서드는 클래스안에서 선언되고 객체에 의해 사용되기 때문에 클래스로 봐야 합니다. 쉽게 얘기해서 람다식.. 2023. 8. 18.
정렬 알고리즘 개념 베하! 안녕하세요 여러분, 일단고입니다. 8월 중반이네요. 다가올 가을이 기대됩니다. 오늘은 정렬 알고리즘의 종류엔 무엇이 있고 어떤 장단점이 있는지 알아봅시다! 정렬 알고리즘 정렬 알고리즘은 컴퓨터 공학에서 중요시되는 문제 중 하나로, 어떤 데이터셋이 주어졌을 때 이를 정해진 순서대로 나열하여 재배치하는 방법을 말합니다. 선택 정렬, 삽입 정렬, 버블 정렬, 병합 정렬, 힙 정렬, 퀵 정렬, 기수 정렬이 있습니다. 어떤 알고리즘이 가장 좋다고는 말할 수 없습니다. 상황에 따라서 적절한 알고리즘을 사용하는 것이 가장 중요합니다. 알고리즘 선택 시 고려해야 할 사항은 다음과 같습니다. 정렬할 데이터의 양 데이터와 메모리 기존의 정렬된 정도 필요한 추가 메모리 양 안정성 그럼 정렬 알고리즘을 하나하나 알아봅.. 2023. 8. 14.
정적 팩토리 메서드(Static Factory Method) 베하 안녕하세요 여러분. 일단고입니다. java라는 언어는 너무 많이 사용하는 언어이자 어려운 언어라고 생각이 듭니다. 하지만 Java를 땔 수 없는 저의 상황입니다… 오늘 얘기해볼 주제는 Java 언어의 정적 팩토리 메서드(Static Factory Method)에 대해 알아보겠습니다. 1. 정적 팩토리 메서드란? Java라는 언어를 경험을 해본신 분이라면 아마 new 라는 키워드를 모두 알고 있을 것 같습니다. java는 객체지향언어로 new 라는 키워드를 통해서 객체를 생성하고 사용합니다. 이러한 객체 생성 방식을 new 키워드가 아닌 우리가 흔히 아는 메서드 즉, 함수로 객체를 생성하게 하는것을 정적 팩토리 메서드라고 합니다. 현업에서는 우리가 java언어를 배울 때 new 키워드로 객체를 생성했.. 2023. 8. 4.
[네트워크] 오류 검출 방식 베하 안녕하세요 여러분. 다시 돌아온 일단고 팀입니다. 오늘 얘기해볼 주제는 오류 검출 방식입니다. 네트워크 상에서 데이터를 주고받는 과정에서 감쇠, 잡음 등에 의해서 데이터가 불온전하게 전달될 수 있습니다. 이러한 데이터의 오류를 검증하는 오류 검출 방식에 대해서 알려드리겠습니다. 오류 검출의 개요 데이터의 무결성을 보장하기 위해 오류 검출 방식을 사용합니다. 오류 검출은 데이터 전송 중 발생한 오류의 존재 여부를 수신측이 알 수 있도록 하는 기술입니다. 만약 오류 검출 결과 데이터에 오류가 존재한다면 수신측은 송신측에 데이터 재전송을 요청합니다. 이는 오류에 대한 정정은 이루어지지 않으나, 검출해내는 것 만으로도 오류 제어가 충분한 경우가 많습니다. 대표적인 오류 검출 방식에는 패리티 검사, 검사합,.. 2023. 7. 24.
경쟁조건(Race Condition) 안녕하세요 여러분 베하!! 또 다시 비가 많이 내릴 예정이라 하니 걱정입니다. 다들 몸 부터 먼저 챙기셔야 합니다. 오늘은 경쟁조건에 대해 공부하려고 합니다. 공유메모리 위 그림에서 특정 프로세스는 여러 스레드를 가지고 있고 프로세스는 메모리 구조상 코드, 데이터, 힙, 스택영역을 차지합니다. 이때 프로세스 내부의 스레드는 스택메모리를 제외한 나머지 메모리는 모두 공유하여 사용하고 있습니다. 프로세스는 부서, 스레드는 부서의 사람이고 스택은 책상이며 코드, 데이터, 힙은 부서의 업무에 필요한 데이터가 있는 서랍이라고 생각하겠습니다. 우리는 출근하면 부서의 데이터를 가져와서 자신의 책상에 올리고 자신이 그 업무를 처리한다생각하면 한 스레드가 스택영역을 제외한 나머지는 공유한다고 볼 수 있습니다. 경쟁조건(.. 2023. 7. 21.
HTTP Request, Response 구조 안녕하세요 여러분 베하!! 이번주도 돌아온 일단고 팀입니다. 비가 굉장히 많이 내리고 있습니다. 다들 조심하시길 바랍니다 오늘은 HTTP의 Request와 Response에 대한 메시지 구조를 알아보겠습니다. HTTP의 메시지 요청과 응답의 구조를 알아보기 전에, 과연 HTTP의 메시지란 무엇인가. 설명해드리겠습니다. HTTP 메시지는 클라이언트와 서버 사이에서 데이터를 주고받는 방식을 의미합니다. 그 방식에는 Reqeust와 Response의 두 가지 타입이 존재합니다. Request은 클라이언트가 서버에게 보내는 요청을 말하고, Response은 요청에 대한 서버의 응답이 됩니다. HTTP 메시지는 ASCII로 인코딩된 텍스트 정보이며 설정 파일(프록시 혹은 서버의 경우), API(브라우저의 경우),.. 2023. 7. 17.
캐시와 레지스터 베하! 안녕하세요 일단고 팀입니다! 이번 시간에는 저번 메모리구조와 관련되어 추가로 캐시와 레지스터에 대해 알아보겠습니다. 레지스터와 캐시는 많이 들어보았지만 그 차이나 개념을 명확하게 알지 못하는 경우도 많습니다. 그래서 레지스터와 캐시에 대해 이해하는 시간을 가져보겠습니다. 주 또는 보조 기억장치의 흐름 및 속도 위 그림과 같이 Disk부터 Registers까지 데이터가 흘러간다고 먼저 이해하면 좋습니다. 또한 registers로 갈수록 속도가 더 빨라지는 구조입니다. CPU가 메인 메모리에 있는 데이터를 읽어야 할 때 캐시메모리를 검색합니다. 캐시 메모리에 데이터가 있으면 바로 데이터를 전달하고 없다면 메인 메모리로 부터 데이터를 가져와 cpu에게 전달합니다. 캐시란 캐시는 컴퓨터 시스템의 성능향상.. 2023. 7. 11.
UML : 클래스 다이어그램 표기법 베하! 안녕하세요 일단고 팀입니다! 저번 시간에는 UML 다이어그램의 종류와 특징 및 사용 목적에 대해서 알아보았습니다. 이번 시간에는 여러 종류의 UML 다이어그램 중 클래스 다이어그램에 대해서 자세히 알려드리겠습니다. 클래스 다이어그램 정적 구조 다이어그램으로, 클래스와 클래스가 가지는 속성, 클래스 간의 관계를 표현하여 소프트웨어 시스템의 구조를 분석하고 설계하는 데 사용합니다. 클래스에는 클래스 명, 속성(상태), 메서드(행위)가 존재합니다. 그럼, 클래스 간의 관계를 표현하기 위해 필요한 요소들에는 무엇이 있을까요? 접근 제어자 접근 제어자 표시 설명 public + 외부 클래스가 자유롭게 사용할 수 있습니다. private - 같은 패키지 또는 자식 클래스에서 사용할 수 있습니다. protec.. 2023. 7. 3.