전체 글 78

[Spring] 기초 1주차

✏️ 인터넷 프로토콜인터넷이 통하는 네트워크에서 정보를 수신/송신하는 통신에 대한 규약을 의미하며, 192.168.0.1 과 같은 숫자는 IP주소를 말한다.인터넷 통신을 하게 되면 지정한 IP주소에 데이터를 패킷 단위로 전달한다 패킷출발지IP, 도착지IP를 포함하고 데이터를 주고받는 역할을 한다. 인터넷 프로토콜의 단점1. 목적지 컴퓨터의 어떤 프로그램에 사용될 데이터인지 구분할 수 없다.2. 목적지 컴퓨터가 전원이 꺼져있든 동작하지 않든 상태에 상관없이 데이터를 전송한다.(비연결성)3. 패킷이 손실되는 경우가 있다.(비신뢰성)4. 패킷의 순서가 섞여서 들어올 수 있다. 👉  TCP 프로토콜을 사용해서 단점을 해결할 수 있다.  ✏️ TCP/UDPTCP서버와 클라이언트 간에 데이터를 신뢰성 있게 전달하..

코딩/자바 2025.01.21

[운영체제] 운영체제(1)

✏️ 운영체제- 운영체제는 커널을 의미한다. 일반적으로 커널에 여러가지가 추가된 상태를 OS(운영체제)라고 통칭한다.- 쉘: 사용자 명령을 커널에 전달하고 결과를 반환하는 인터페이스. 터미널과 GUI  환경 두 종류로 분류된다.- 시스템 콜: 커널 기능에 접근하기 위한 프로그래밍 인터페이스. 커널 모드에서 실행되며 함수 호출을 통해 프로그래밍 언어로 이루어진다.  ✏️ 사용자 모드와 커널모드- 사용자 모드: 응용 프로그램이 사용- 커널 모드: OS가 사용. 반드시 시스템 콜을 사용해야 한다.사용자 모드와 커널모드가 계속 스위칭되면서 실행되는 모습   ✏️ 운영체제 역할1. 시스템 자원 관리자시스템 자원은 컴퓨터 하드웨어를 말한다. 즉 CPU, 메모리, IO device등을 관리한다. 2. 사용자와 컴퓨터..

CS 2025.01.20

[컴퓨터 구조] 컴퓨터 구성 요소

폰노이만 구조우리의 컴퓨터는 폰노이만 구조로 이루어져있다.폰노이만 구조는 CPU, 메모리, 프로그램으로 구성되어 있다. 주요 구성요소: CPU, Memory, IO Device CPU연산 기능(산술연산, 논리연산)과 제어 기능(IO device, memory, ALU 동작 제어)을 한다. Memory데이터를 저장한다.내부 기억장치(=주 기억장치): CPU 안에 있는 레지스터, cache, RAM 등외부 기억장치(=보조기억장치): SSD, HDD IO Device입력 장치, 출력 장치로 구성 BusCPU, Memory, IO Device를 연결해주는 장치

CS 2025.01.17

[선형자료구조] 스택

LIFO , 마지막에 들어온 데이터가 먼저 나가는 구조. 입력의 역순으로 처리되어야 할 때 사용 push/pop/peek/contains/size/ 메소드가 있다. 문제 1문자열 뒤집기 입력: "Hello"출력: "olleH"입력: 1 3 5 7 9출력: 9 7 5 3 1 public static String reverseString(String arr) { Stack stack = new Stack(); String answer= ""; for (int i = 0; i  ❗️ 주의할 점while을 써서 !stack.isEmpty를 조건으로 줘야 한다. stack을 계속 pop할수록 stack의 크기가 줄기 때문에 for문은 xx 문제 2괄호 짝 검사입력: "("출력..

자료구조 2025.01.17

[프로그래머스] 문자열 내 마음대로 정렬하기

https://school.programmers.co.kr/learn/courses/30/lessons/12915 solutionimport java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.List;class Solution { public String[] solution(String[] strings, int n) { String[] answerArr = new String[strings.length]; List list = new ArrayList(); for (int i = 0; i 1. n번째 자리의 글자와 해당 인덱스의 배열을 같이 리스트에 ..

[키오스크 프로젝트] 스트림 사용기

이번 프로젝트에서 사용한 스트림과 람다의 구현 요구사항은 다음과 같다. 기존에 생성한 Menu의 MenuItem을 조회 할 때 스트림을 사용하여 출력하도록 수정기존 장바구니에서 특정 메뉴 빼기 기능을 통한 스트림 활용⌛️첫번째 요구사항에 stream 적용//리스트 안에 있는 MenuItem 하나씩 출력for (int i = 0; i 기존에 구현했던 코드는 다음과 같다. Stream을 사용하기 위해 했던 생각❔ 그냥 리스트에 있는 내용물을 하나씩 보여주면 되니까 menuItems.forEach(System.out::println)를 쓰면 되지 않을까?👉🏼 이게 stream을 사용한 건지도 모르겠다 근데 제일 큰 문제는 인덱스 번호가 같이 출력되어야 하는데 저렇게 하면 앞에 숫자는 출력이 안돼서 쓸 수 ..

자바 메모리 세션 짧은 정리 - static

과제형식의 코테가 요즘 많이 나오는 추센데 인터페이스가 거의 필수 요구사항임enum 타입과 동일한지 비교할 때는 equals가 아닌 ==를 사용. enum은 메모리 주소가 변하지 않기 때문에 ==을 쓰는 것이 안전하다.staticstatic이라고 선언된 메소드는 객체 생성 없이도 사용 가능하다는 특징이 있다.static은 메모리가 정적인 것. 그니까 한번 static으로 선언해서 사용이 되면 메모리가 저장이 되어버려서 메모리 주소가 정적이기 때문에 static 선언한 필드나 객체를 재사용해도 값이 바뀌지 않게 됨. 그래서 거의 사용 안함! 그럼 언제 사용하느냐유틸 메소드 만들 때 사용. 우리는 거의 사용안하니까 신경 ㄴㄴppt 사용에 감마가 좋음

코딩/자바 2025.01.16

[키오스크 프로젝트] 람다, 스트림 활용

구현 요구사항기존 장바구니에서 특정 메뉴 빼기 기능 통한 스트림 활용예시: 장바구니에 SmokeShack가 들어있다면, stream.filter를 활용하여 특정 메뉴 이름을 가진 장바구니에서 제거도전 과제의 마지막 요구사항이었는데 무슨 말인지 이해하는데도 시간이 필요했다(멍충멍충)그냥 단순하게 장바구니에서 특정 이름의 메뉴를 빼는 기능을 stream.filter를 통해 구현하라는 것이었다. 하지만 너무 뜬금없이 냅다 장바구니에서 빼기 싫어서 스토리를 생각해보았다 ㅎ두 종류의 햄버거를 할인 품목으로 넣고 할인 품목은 한 종류만 장바구니에 추가할 수 있도록 하는 것..!구현을 해보자 //Menu 객체 생성하면서 카테고리 이름 설정 Menu burgerCategory = new Men..

[키오스크 프로젝트] 트러블 슈팅 - 기본 생성자 및 리스트 초기화

도전과제 1 요구사항 맞춰서 코드 작성 후 콘솔로 확인해보려는데 실행하자마자 뜨는 오류Execution failed for task ':Main.main()'.> Process 'command 'C:\Users\user\.jdks\corretto-17.0.8.1\bin\java.exe'' finished with non-zero exit value 1* Try:> Run with --stacktrace option to get the stack trace.> Run with --info or --debug option to get more log output.> Run with --scan to get full insights.> Get more help at https://help.gradle.org...