전체 글

전체 글

    [모던 자바 인 액션] 동작 파라미터화 코드 전달하기

    📚 동작 파라미터란? 아직은 어떻게 실행할 것인지 결정하지 않은 코드 블록으로 나중에 실행될 메서드의 인수로 코드 블록을 전달하는 것 즉, 원하는 동작을 메서드의 인수로 전달 할 수 있음 📚 동작 파라미터화 사용 이유 바뀌는 요구 사항에 효과적으로 대응할 수 있음 📚 예제 농장 재고 목록 애플리케이션 리스트의 요구사항 녹색 사과만 필터링 빨간 사과만 필터링 무거운 사과만 필터링 가벼운 사과만 필터링 ... 처음에는 1번의 요구사항만 존재 하다가, 나중에 2번의 요구사항이 추가될 수 있습니다. 이럴 경우 아래와 같이 색을 파라미터화 시켜서 필터링 메서드를 구현할 수 있습니다. pulbic static List filterAppleByColor(List aplleList, Color color) { List..

    [컴퓨터 구조] 명령어의 구조

    *혼자공부하는컴퓨터구조+운영체제(강민철 / 한빛미디어) 책과 강의를 듣고 작성한 내용입니다 :) 명령어 한 줄은 연산 코드와 오퍼랜드로 이루어져 있습니다. 📗 연산 코드와 오퍼랜드 ✔ 연산 코드 : 명령어가 수행할 연산 가장 기본적인 연산 코드 유형은 크게 4가지 입니다. 1️⃣ 데이터 전송 MOVE : 데이터를 옮겨라 (다른 레지스터로 데이터 이동) STORE : 메모리에 저장하라 LOAD (FETCH) : 메모리에서 CPU로 데이터를 가져와라 PUSH : 스택에 데이터를 저장하라 POP : 스택의 최상단 데이터를 가져와라 2️⃣ 산술/논리 연산 ADD / SUBTRACT / MULTIPLY / DIVIDE : 덧셈 / 뺄셈 / 곱셈 / 나눗셈을 수행하라 INCREMENT / DECREMET : 오퍼랜..

    [Spring Boot] 스프링 부트 프로젝트 생성 - spring initializr 사용

    [Spring Boot] 스프링 부트 프로젝트 생성 - spring initializr 사용

    📚 spring initializr https://start.spring.io/ 간단한 선택만으도 spring boot 기반 프로젝트를 생성해주는 사이트 📚 spring initializr의 선택 속성 * (추가) - 스프링 부트 3.0부터는 Java17 이상의 버전을 사용해야 합니다! - 이대로 프로젝트를 생성했다면 Java버전을 업그레이드 해주세요 ✅ Project 빌드배포 도구 선택 Maven: xml 형식으로 나열하여 작성 Gradle: 직접 코드를 짜서 작성 (kotlin, Groovy 사용) ✅ Language 사용하고 싶은 언어 선택 ✅ SpringBoot 사용할 스프링부트의 버전을 선택 보통 안정성 때문에 최신 릴리즈 버전보다 한 단계를 아래를 많이 사용 *SNAPSHOT : 아직 만들고 ..

    [프로그래머스] 요격 시스템

    프로그래머스_요격시스템 Level2 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 초기 풀이 방법 (통과 ❌) targets의 값끼리 중복되는 최소 구간을 저장하기 위해 duplRangeList 생성 targets의 값을 하나 씩 확인하며 duplRangeList와 겹치는 구간이 있으면 최소 구간으로 갱신 duplRangeList와 겹치는 구간이 없으면 target값을 duplRangeList에 추가 최종적으로 duplRangeList의 길이 반환 초기 풀이 방법 코드(통과 ❌) import java.util.ArrayList; class Solution..

    [컴퓨터 구조] 어셈블리어 2. 예제

    📗 어셈블리 메모리 주소, 크기, 포인터 표기법 📌 메모리 주소 표기법 메모리 주소는 대괄호 [] 로 표기한다. ex) [00402001], [02130423] 등등등,, 📌 크기 표기법 레지스터의 크기에 맞춰 명령어에 들어갈 필수 입력 정보 DWORD : 4byte WORD : 2byte BYTE : 1byte 📌 포인터 표기법 PTR 📗 C언어로 작성된 간단한 사칙연산 소스 코드 int square(int num) { int a = 1, b = 2; int c = a + b; return c; } push rbp mov rbp, rsp mov DWORD PTR [rbp-20], edi mov DWORD PTR [rbp-4], 1 mov DWORD PTR [rbp-8], 2 mov edx, DWORD ..

    [컴퓨터 구조] 어셈블리어 1. 기본 문법과 명령어

    📗 어셈블리어 Assembly 0과1로 이루어진 기계어와 1대1로 대응되는 명령어로 이루어진 저급언어 모든 기계마다 동일하지 않음 📗 어셈블리어를 알아야 하는 이유 문제 해결 범위 증가 : 고수준의 언어로 작성된 코드에서 문제점이 보이지 않을 때, 컴파일된 어셈블리어 코드를 보고 문제의 원인을 파악할 수 있습니다. 개발 도구에 대한 이해 향상 : 고수준 언어로 코드를 작성하고 실행하면 바로 실행결과가 나옵니다. 어셈블리어를 알아두면 고수준언어로 코드를 작성하고 빌드하면 어떻게 변환되어 컴퓨터에게 전달되는지 과정을 이해할 수 있습니다. 함수 호출 방식에 대한 깊은 이해 : 어셈블리어를 알아두면 전역변수와 지역변수가 어디에 저장되는지, 함수를 호출 했을 경우 프로그램의 실행 흐름이 어떻게 되는지 보다 깊이 ..

    [컴퓨터 구조] 컴퓨터가 고급언어를 이해하는 방법

    *혼자공부하는컴퓨터구조+운영체제(강민철 / 한빛미디어) 책과 강의를 듣고 작성한 내용입니다 :) 컴퓨터를 한 마디로 정의하면 명령어를 처리하는 기계 라고 할 수 있습니다. 컴퓨터는 우리가 사용하는 프로그래밍 언어로 작성된 프로그램을 바로 이해하고 실행할 수 있을까요? 정답은 그렇지 않다 입니다! 컴퓨터가 어떻게 프로그래밍 언어(C, C++, Java, Python...)로 작성된 소스코드를 이해하고, 실행시키는지 알아봅시다 😋 📗 고급 언어 사람이 이해하고 작성하기 쉽게 만들어진 언어 가독성이 좋고, 변수나 함수같은 편리한 문법 제공 우리가 사용하는 프로그래밍 언어 ex) C, C++, Java, Python... 📗 저급 언어 컴퓨터가 직접 이해하고 실행할 수 있는 언어 기계어, 어셈블리어 2가지 종류..

    [컴퓨터 구조] 컴퓨터가 데이터를 이해하는 방법 2. 문자

    *혼자공부하는컴퓨터구조+운영체제(강민철 / 한빛미디어) 책과 강의를 듣고 작성한 내용입니다 :) 📗 문자를 이해하는 방법 🌟 용어정리 문자집합 : 컴퓨터가 이해할 수 있는 문자들의 집합, 각 문자마다 코드 포인트(고유한 값)이 있음 인코딩 : 문자에 해당하는 코드 포인트를 컴퓨터가 이해할 수 있는 값(0과1)으로 변환 디코딩 : 컴퓨터가 이해할 수 있는 값에서 우리가 이해할 수 있는 값으로 변환 ✔ 아스키코드 초창기 문자집합 중 하나로 영어 알파벳과 아라비아숫자, 일부 특수문자를 포함합니다. 각 문자를 7비트로 표현합니다. 따라서 2의7승개인 총 128개의 문자를 표현할 수 있습니다. 아스키코드표에서 각 문자마다 부여한 코드 포인트를 확인할 수 있습니다. (아스키코드표를 참조해주세요) * 실제로 하나의 ..