# study

[우아한테크 도전기] 자바 구현 문제 풀어보기
이번 포스팅은 GPT와 함께 자바 구현 문제를 구성해서 문제를 내가 직접 풀어보는 식으로 공부를 진행해보았다. 이런식으로 여러번 했었는데 이렇게 공부하는게 정말 많이 도움되는 것 같다. 아무튼 이것도 포스팅으로 한번 남겨보려고 한다. 🚀 문제 이번 문제는 주문 관리 시스템이였다. 많이 단순화된 주문 관리 시스템이지만, 우테크에서 적용하는 컨벤션을 따르려고 노력하면서 문제를 풀어보았다. 📝 풀이 및 회고 최근에 풀어보았던 문제처럼 Model, View, Controller로 역할을 나눈 후 기능명세서를 구현하였다.

JavaScript 기초부터 배우기 - 4
1. 함수 > 특정 코드를 하나의 명령으로 실핼 할 수 있게 해주는 기능, 어떤 일의 단위 이 장에서는 함수를 알아보자 함수는 기본적으로 다음과 같은 형식이다. 매개변수 - 함수에 전달해야되는 내용이 있을 때, 이 함수가 실행될 때 알아야되는 내용이 있을 때 매개변수를 통해 전달한다. retrun - 반환값, 함수 완료 후, 반환되어야 하는 값이 있을 때 사용한다. 1-1. 함수의 기본 > 함수를 선언하고, 지역 변수와 외부 변수를 알아보자 함수 선언, 지역 변수 왜 이런 결과가 나올까? message는 showMessage 함수의 지역 변수 이기에 외부에서는 호출이 되지 않는 성질을 가지기 떄문이다. 그럼 외부에서 호출이 가능한 변수도 있을까? 그게 외부 변수이다. 외부 변수 > 함수에선 외부 변수에 접근, 수정이 가능하다. (1) - 외부 변수 userName을 함수 내부에서 수정함 (2) - 수정한 함

React 라이프 사이클
React는 개발자들을 위해 유용한 함수를 제공하는데 그 중에서도 컴포넌트 render가 잘 됐는지, state의 업데이트가 잘 이루어졌는지 등을 알 수 있는 life cycle 함수를 제공한다. class 컴포넌트에서의 life Cycle 클래스 컴포넌트에서의 라이프 사이클은 크게 Mounting, Updating, Unmounting이 있다. Mounting 컴포넌트가 시작될 때 constructor() -> getDerivedStateFromProps() -> render() -> componentDidMount() 순으로 메서드가 실행된다. constructor 컴포넌트가 실행될 때 맨 처음 실행되는 클래스 생성자 메서드이다. 따라서 이 곳에서 state를 선언해준다.
클래스 [2/2]
인스턴스 멤버와 this 인스턴스 멤버: 객체를 생성한 후 사용할 수 있는 필드와 메소드 this: 객체 외부에서 인스턴스 멤버에 접근하기 위해 참조 변수를 사용하듯이 객체 내부에서는 인스턴스 멤버에 접근하기 위해 this를 사용 예제 정적 멤버와 static 정적 멤버: 클래스에 고정된 멤버로서 객체를 생성하지 않고 사용할 수 있는 필드와 메소드 (객체 소속이 아닌 클래스 소속이기 때문에 클래스 멤버라고도 함) 정적 멤버 선언 정적 멤버는 클래스에 고정되어있어서 클래스 로더가 바이트 코드(클래스)를 로딩해서 메소드 메모리 영역에 적재할 때 클래스별로 관리됩니다. 따라서 클래스의 로딩이 끝나면 바로 사용할 수 있습니다. 정적 멤버 사용 정적 멤버는 원칙적으로 클래스 이름으로 접근해야 하지만 참조 변수로도 접근이 가능합니다. 예제 정적 초기

[React Study] 1주차 - React 컴포넌트 사용해서 정적 사이트 만들어보기
1주차 태스크: CRA로 React 프로젝트 생성하는 방법과 React 컴포넌트에 대해 이해하기 1주차 - React 컴포넌트 사용해서 정적 사이트 만들어보기 Flex와 Grid 개념 1분 코딩의 글이 정말 잘 나와있어서 항상 애용했었는데, 리더님이 추가로 게임을 활용해서 연습해볼 수 있는 링크를 알려주심. 1분 코딩 설명 게시물 https://studiomeal.com/archives/197 https://studiomeal.com/archives/533 게임을 통해 연습해볼 수 있는 링크 https://flexboxfroggy.com/#ko https://cssgridgarden.com/#ko 공부 내용 CSS - Flex 사용해보기 Footer , Header 를 고정시켜보기 React 컴포넌트 props 연습해보기 코드 리뷰 0. App.js 1. Hea

[C#] LINQ
[이것이 C#이다] 15장 LINQ LINQ LINQ (Language INtegrated Query) : 데이터 질의 기능 From : 어떤 데이터 집합에서 찾을 것인가? Where : 어떤 값의 데이터를 찾을 것인가? Select : 어떤 항목을 추출할 것인가? LINQ 기본 from > 모든 LINQ 쿼리식은 반드시 from 절로 시작 ⭐️ 기본 형식 데이터 원본 : IEnumerable 인터페이스 상속하는 형식이어야 함 🔗 사용 예 where where : 필터 역할을 하는 연산자로, 범위 변수가 가져야 하는 조건을 인수로 입력 orderby orderby : 데이터의 정렬을 수행하는 연산자 오름차순 - default, ascending 내림차순 - descending 🔗 사용 예 select select : 최종 결과를 추출하는 쿼리식의 마침표 -> 결과는
클래스 [1/2]
객체 지향 프로그래밍 객체란? object-in-java 객체(Object)란 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있고 다른 것과 식별 가능한 것을 말합니다. 예를 들어 물리적으로 존재하는 자동차, 자전거, 책, 사람과 추상적인 학과, 강의, 주문 등이 모두 객체가 될 수 있습니다. 객체는 속성과 동작으로 구성되어 있습니다. 예를 들어 사람은 이름, 나이 등의 속성과 웃다, 걷다 등의 동작이 있고, 자동차는 색상, 모델명 등의 속성과 달린다, 멈춘다 등의 동작이 있습니다. 자바는 이 속성과 동작들을 각각 필드(field)와 메소드(method)라고 부릅니다. 객체의 상호작용 객체의 상호작용은 객체 간의 메소드 호출을 의미하며 매개값과 리턴값을
git/ 소스트리 헷갈리는 용어 정리
스태시 stash는 현재까지 Working Tree에서 작업한 내용을 커밋하지 않고, 별도의 저장소에 저장하는 명령어이다. 그러므로 stash 명령어를 실행하면, Working Tree가 HEAD의 위치로 돌아가 깨끗해진다. 태그 태그는 히스토리에 설명을 해주는 태그를 달 수 있다. 해당 히스토리에 버전을 적어두는 용도로 쓸 수 있겠다. tag를 등록해놓으면 자동으로 Release정보가 생성된다. 브랜치 너무 방대해서 일단 링크 검 차이나는 개발자 님 블로그 체크아웃 로컬

JavaScript 기초부터 배우기 - 3
1. 조건문 > 조건문을 사용하면 특정 조건이 만족했을 때 특정 코드를 실행 할 수 있다. 1-1. if문 > if(...)문은 괄호 안에 들어가는 조건을 평가, 그 결과가 true이면 해당 코드 블럭이 실행 -> 괄호 안의 표현식을 평가 -> 불린 값으로 변환 숫자 0, 빈 문자열 "", null, undefined, Nan 모두 불린형으로 변환 시 false 그럼 a 의 값을 바꾼다면? 1-2. if-else문 > if(...)문의 괄호 안에 들어가는 조건을 평가하고 그 결과가 false일 때 실행되게 끔 하는 코드 블럭 특정 조건이 만족할 때와 만족하지 않을 때 서로 다른 코드를 실행해야 된다면 if-else문을 사용 할 수 있다. 1-3. if-else if문 > 여러 조건에 따라 다른 코드 블럭을 실행해야할 때 사용한다. 위의 조건식을 보면 지금은 위의 두 조건이 충족이 되지 않아

[C#] 람다식 (Lambda Expression)
[이것이 C#이다] 14장 람다식 람다식 람다식은 익명 메소드를 만들기 위해 사용된다 -> 람다식으로 만드는 익명 메소드는 무명 함수로 불린다 형식 ⭐️ 기본 형식 ⭐️ 문 형식 Func 대리자 Func 대리자는 결과를 반환하는 메소드를 참조하기 위해 사용 ⭐️ 선언식 형식 매개변수 중 가장 마지막은 항상 반환 형식 🔗 사용 예 Action 대리자 Action 대리자는 반환 형식이 없는 대리자 ⭐️ 선언식 형식 매개변수는 모두 입력 매개변수를 위해 선언됨 🔗 사용 예 식 본문 멤버 식 본문 멤버(Expression-Bodied Member) : 메소드, 속성(인덱서), 생성자, 종료자를 식만으로 구현 ⭐️ 기본 형식 🔗 사용 예 식 트리  > > 기억하고 싶은 내용을 적습니다. 9장 자바스크립트 엔진은 불리언 타입이 아닌 값을 Truthy값, Falsy 값으로 구분 Falsy : false, undefined, null, 0, -0, NaN, '' Truthy : Falsy 외의 모든 값 옵셔널 체이닝 연산자 (?.) / ES11 좌항 피연산자가 null, undefined인 경우, undefined 반환. 그 외에는 우항의 프로퍼티 참조. null 변합 연산자 (??) / ES11 좌항 피연산자가 null, undefined인 경우, 우항의 피연산자 반환 그 외에는 좌항의 피연산자 반환. (변수에 기본값 설정 시 유용) 10장 객체는 프로퍼티의 집합이며, 프로퍼티는 키와 값으로 구성된다. 메서드는 객체 프로퍼티 값에 들어간 함수를 의미한다. 11장 원시 타입 변경 불가능한 값
Study #0
나는 보통 회사에서 사용하는 기술 스택에 맞춰 내 역량을 길러왔는데, 이것만으로는 한계가 있는 것 같다는 생각이 계속 들었다. 많이들 사용한다던 라이브러리 및 프레임워크들의 이름을 들어보기만 했지, 그래서 그게 뭔데? 라는 질문을 계속 하게되는 것이 답답하였다. 그래서 최근 FE에서는 어떤 기술들이 자주 쓰이는지 살펴보고, 앞으로 공부 방향을 정하려 한다. > 나는 주로 어떤 스택으로 사용하였나. > - 언어 : js, ts (아직 ts는 미숙하다.) > - 프레임워크 : Vue > - 상태관리 라이브러리 : vuex, pinia > - 라이브러리 관리 : node.js 내장 npm > - 모듈 번들러 : webpack > - 비동기통신 : ajax, axios > - 등.. React redux, recoil, react-sweet-state, React-Query, mobx swr rust, swc docker next.js jest, Cyp

JavaScript 기초부터 배우기 - 2
1. 데이터 타입 > 변수나 상수를 선언하게 될 때, 숫자 외에도 다른 값들을 선언 할 수 있다. 숫자형(Number) - 숫자 문자형(String) - 텍스트, 작은 따옴표, 큰 따옴표로 감싸서 선언 불린형(Boolean) - true, false 두 종류의 값을 가진다. null 과 undefined - 없음의 의미 > null - 우리가 없다고, 고의적으로 설정한 값 undefined - 우리가 설정을 하지 않았기 때문에 없는 값 2. 연산자 > 연산자는 프로그래밍 언어에서 특정 연산을 하도록 하는 문자 2-1. 산술 연산자 > 산술 연산자는 사칙연산과 같은 작업을 하는 연산자 + : 덧셈 - : 뺄셈 * : 곱셈 / : 나눗셈 ++ : 증가 -- : 감소 2-2. 대입 연산자 > 대입 연산자는 특정 값에 연산을 한 값을 바로 설정 할 때 사용 할 수
얕은 복사, 방어 복사, 깊은 복사
객체를 복사하는 방법에는 여러 가지가 있다. > 여기서는 얕은 복사, 방어 복사, 깊은 복사를 순차적으로 살펴보고, > 이러한 방법들이 각각 어떻게 동작하는지, 어떻게 사용되는지를 알아보도록 한다. 얕은 복사 얕은 복사(shallow copying)는 객체의 주소 값만을 복사하는 방법이다. 객체 내부에 다른 객체를 참조하는 또 다른 참조 값이 있더라도, 참조된 객체를 새로 복사하지는 않는다. 얕은 복사를 사용하면 복사된 객체와 원본 객체는 같은 객체를 참조하게 된다. 즉 하나의 객체를 수정하면 다른 객체에도 영향을 미친다. > 자바에서는 = 연산자로 얕은 복사를 할 수 있다. 얕은 복사 예시 방어 복사 방어 복사(defensive copying)는 **객체의 주소를 복사하지 않고 객체의 내부
Chapter 07. 객체 디자인
*컴퓨터 과학의 모든 문제는 또 다른 간접 계층을 추가해 풀 수 있다. > 하지만 대부분 또 다른 문제를 양산한다. - 데이비드 휠러* Chapter 07에서는 더 객체 지향적이고 강력한 코드를 만드는 데 유용한 디자인 원리를 알아본다. 불 매개변수로 메서드 분할 > 일반적으로 메서드는 하나의 작업에만 특화되어야 한다. > 불 메서드 매개변수는 메서드가 적어도 두 가지 작업을 수행함을 의미한다. 다음 예제를 살펴보자. 위 예제는 Logbook 클래스를 수정한 버전이다. log() 메서드의 두 번째 매개변수로 true/false를 전달하여 공개/비공개 메시지를 작성할 수 있다. log() 메서드를 호출하는 방법은 다음과 같다. 코드에 문제는 없지만 지금의 Logbook 클래스는 읽기 불편하고 구조화가 덜 되었다. 이는 두 번째 매개

AI Study_#MustHave | 머신러닝 주요 개념(5장-(3) # 주요 머신러닝 모델, #하이퍼파라미터 최적화)
* 본 스터디는 신백균 저 ⟦MustHave 머신러닝•딥러닝 문제해결 전략⟧ 골든래빗(Golden Rabbit) 출판사의 책을 기반으로 진행하고 있습니다. 저작권 문제 시 댓글 남겨주시면 감사드리겠습니다. 😊 1. 주요 머신러닝 모델 1-1) 선형 회귀 모델 >* 선형 회귀식을 활용하여 회귀계수(모델 파라미터)를 찾는 것 ✅ 데이터 생성 ✅ 모델훈련 ✅ 회귀선 확인 1-2) 로지스틱 회귀 모델 >* 션형 회구 ㅣ방식 응용해 분류 모델에 적용 >>* 시그모이드 함수 활용하여 타깃값에 포함될 확률 예측 : 0-1사이 값을 가짐, x값이 작을수록 0에 가깝고 클수록 1에 가까움 1-3) 결정 트리 >* 작동원리 >>1) 데이터를 가장 잘 구분하는 조건 정함 2) 조건을 기준으로 데이터를 두 범주로 나눔 3) 나뉜 각 범주의 데이터를 잘 구분하는 조건을 재정립 4) 조건에 따라 각 범주에 속한 데이터를 재분할 5) 위와 같은 방식으로 계

AI Study_#MustHave | 머신러닝 주요 개념(5장-(2) #데이터 인코딩, #피처 스케일링, # 교차 검증)
* 본 스터디는 신백균 저 ⟦MustHave 머신러닝•딥러닝 문제해결 전략⟧ 골든래빗(Golden Rabbit) 출판사의 책을 기반으로 진행하고 있습니다. 저작권 문제 시 댓글 남겨주시면 감사드리겠습니다. 😊 1. 데이터 인코딩 >* 범주형 데이터를 숫자 형태로 바꾸는 작업 1-1) 레이블 인코딩 >* 범주형 데이터를 숫자로 일대일 매핑해주는 인코딩 방식 1-2) 원-핫 인코딩 >* 여러 값 중 하나만 활성화하는 인코딩 방식 1) 인코딩하려는 피처의 고윳값 개수를 구함 2) 피처의 고윳값 개수만큼 열을 추가 3) 각 고윳값에 해당하는 열에 1을 표시하고 나머지 열에는 0을 표시 단점: 열 개수가 많아져서 메모리 사용량 늘어나므로 모델 훈련속도 저하 >* 명목형 피처 고윳값이 많을 때 1) 비슷한 고윳값끼리 그룹화 2) 빈도가 낮은 고윳값을 '기타(etc)'로 처리 3) 다른 인코딩 적용 : 타깃 인코딩, 프리퀀시 인코딩 등 그 외 기법 사

AI Study_#MustHave | 머신러닝 주요 개념(5장-(1) #분류, #회귀, #분류 평가지표)
본 스터디는 신백균 저 ⟦MustHave 머신러닝•딥러닝 문제해결 전략⟧ 골든래빗(Golden Rabbit) 출판사의 책을 기반으로 진행하고 있습니다. 저작권 문제 시 댓글 남겨주시면 감사드리겠습니다. 😊 1. 분류와 회귀 예측하려는 타깃값이 범주형 데이터면 분류 문제, 수치형 데이터면 회귀 문제 1-1) 분류 >* 주어진 피처에 따라 어떤 대상을 정해진(유한한) 범주(타깃값)에 구분해 넣는 작업 (ex. 개와 고양이 구분, 스팸메일과 일반 메일 구분, 질병 검사 결과가 양성인지 음성인지 등) → 타깃값이 두 개 분류는 이진분류, 세 개 이상 분류는 다중분류 1-2) 회귀 >* 자연현상이나 사회 현상에서 변수 사이 관계 (ex. 학습 시간이 시험 성적에 미치는 영향, 수면의 질이 건강에 미치는 영향, 공장의 재고 수준이 회사 이익에 미치는 영향 등) → 영향을 미치는 변수를 독립변수, 영향을 받는 변수를 종속변수 >* 회귀

[우아한테크 도전기] 이전 기수 프리코스 4주차_다리 건너기 연습
이번 포스팅은 이전기수 프리코스 4주차 문제였던 다리 건너기를 구현하는 과정을 작성하고 회고해보는 시간을 가져보도록 하자! 마지막 문제였던 만큼 확실히 가장 구현하기 까다롭다고 생각했다. 🚀 문제 마지막 문제인 만큼 기능 요구 사항과 프로그래밍 요구 사항, 과제 진행 요구 사항이 많았다. 해당 요구 사항을 맞춰가면서 코드를 작성하다보니 까다로워 지는 부분이 꽤 많았던 것 같다. 📝 풀이 및 회고 확실히 이전 문제보다 구현해야할 메서드가 많아졌다. 위 사진에 들어가있는 메서드 외에도 요구사항에 더 적었고 개발하면서도