러스트는 컴파일 시점에 모든 변수의 타입이 결정되어야 하는 정적 타입 언어이다. 🔹 스칼라 타입: 하나의 값을 표현 🔹 컴파운드 타입: 하나의 타입으로 여러개의 값을 그룹화한 타입 🌱컴파운드 타입 (1) 튜플 타입 서로 다른 타입의 값들을 하나의 컴파운드 타입으로 그룹화하기에 적합 고정된 길이를 가짐(크기를 변경할 수 없음) 괄호(())안에 값을 쉼표로 구분해서 표기 (2) 배열 타입 같은 타입의 값들의 컬렉션 고정된 길이를 가짐 대괄호(square bracket, []) 안에 쉼표로 구분해서 나열 데이터를 스택 메모리에 할당 값을 추가하거나 삭제할 일이 없을 경우 사용 위의 인덱스에 대한 런타임 에러 예제에서 러스트의 안정성 원리를 확인할 수 있다. 엉뚱한 메모리에 대한 접근을 허용하는 대신 프로그램을..
러스트의 변수는 기본적으로 불변성을 가진다. 이와 관련된 에러는 컴파일 시점에 알 수 있다. 러스트는 컴파일러 차원에서 변경되지 않는다고 선언한 값은 실제로 변경할 수 없도록 보장되기 대문에 변수를 일일이 추적할 필요가 없다. 따라서 코드의 의도를 더 쉽게 파악할 수 있다. 변수가 가변성이 필요할 경우에는 변수 이름 앞에 mut 키워드를 추가하여 가변 변수를 선언할 수 있다. 🌱 Shadowing shadowing은 마지막에 선언된 변수를 참조하는 것이다. 같은 이름의 다른 타입 변수를 선언할 수 있다. 위의 코드에서 마지막에 선언된 spaces를 출력한다. 만약 spaces 가변 변수로 하고 값을 변경하려고 하면 mismatched types 에러가 발생한다.
📌프로그램 흐름 프로그램은 1과 100 사이의 난수를 생성한다 플레이어는 예측값을 입력한다 예측값이 정답보다 크거나 같다면 알려주고 2번으로 돌아간다. 만약 예측값이 정답과 같다면 프로그램을 종료한다. io 라이브러리는 std(표준 라이브러리)에 포함되어 있다. 플레이어에게 입력값을 받아오기 위해서 io 라이브러리를 가져온다. 러스트는 prelude에서 몇 개의 타입만을 가져오기 때문에 포함되어 있지 않으면 use 구문을 이용해 가져와야 한다. 변경할 수 있게 하기 위해 mut 키워드를 사용해서 변수를 선언하였다. ::는 new 함수가 String 타입의 연관함수(특정한 인스턴스가 아닌 타입 자체에 구현된 함수)라는 점을 의미한다. 이 new 함수는 빈 문자열을 생성한다. stdin 함수는 표준 입력에 ..
Cargo: 러스트의 빌드 시스템이자 패키지 관리자 cargo --version: cargo의 버전을 출력하는 명령어 cargo new (project_name): 새로운 프로젝트 디렉토리를 생성하는 명령어 cargo 프로젝트에서는 코드가 src 디렉터리에 생성된다. TOML(Tom's Obvious, Minimal Language): 카고의 설정 파일 형식 [package]: 패키지의 설정을 관리하기 위한 구문들이 시작됨을 의미하는 섹션의 제목 name: 카고가 프로그램을 컴파일할 때 필요한 이름 version: 버전 authors: 작성자 edition: 러스트가 사용할 에디션 [dependencies]: 프로젝트 의존 라이브러리 목록을 관리하는 섹션이 시작하는 부분 크레이트(crate): 러스트에서..
Rust는 기본적으로 프로젝트와 라이브러리를 cargo로 관리한다. cargo new (프로젝트 이름) --bin 위와 같은 명령어로 새로운 프로젝트를 생성한다. cargo run 프로젝트 내에서 위와 같은 명령어로 프로그램을 실행시킬 수 있다. hello라는 프로젝트명으로 프로젝트를 생성하였다. 생성한 프로젝트의 구조이다. "Hello, world!"를 출력하는 코드파일과 cargo 프로젝트 속성파일이다. cargo run으로 파일을 실행하였을 때 결과이다. main.rs 파일이다. 러스트는 관습적으로 .rs 확장자를 사용한다. fn으로 main이 함수라는 것을 알려준다. println!으로 "Hello, world!"를 출력해준다.
리액트에 외부 폰트 적용하는 방법 중에서 제일 간단한 방법을 소개하고자 한다. 이번 프로젝트에서 나는 배민체 중 도현체를 웹 페이지에 적용하고자 한다. 🥓 적용하고자 하는 글씨체를 찾는다. 구글 폰트 사이트에서 원하는 글씨체를 찾는다. 저기서 Language를 Korean으로 설정하면 한글을 지원해 주는 글씨체를 모아서 볼 수 있다. 🥓 Select this style을 클릭한다. 빨간 네모친 부분을 보면 Select this style을 찾을 수 있다. 저 버튼을 클릭하자. 오른쪽 상단에 있는 저 버튼을 클릭하자. 그럼 위와 같은 Selected family가 나타난다. 저기서 @import를 선택하고 저기서 @import url('주소');를 복사한다(style 태그는 제외한다). 🥓 리액트에서 설정..
👩💻 state 🚌 컴포넌트 내부에서 바뀔 수 있는 값 ❗ props: 부모 컴포넌트에서만 바꿀수 있으며 컴포넌트 자신은 읽기만 할 수 있다. 👩💻 클래스형 컴포넌트 state constructor(props) { super(props); this.state = { number: 0 }; } contructor 메소드는 생성자 메소드이다. 클래스형 컴포넌트에서는 super(props)를 호출해 주어야한다. this.state 값에 객체 형식으로 초기값을 설정힌다. render() { const {number} = this.state; return ( {number} this.setState({number: number + 1})}>+1 ); } this.state: 현재 state를 조회할 때 사용 ..
pops(properties) ⚡ 컴포넌트 속성을 설정할 때 사용 ⚡ 부모 컴포넌트에서 설정 import React from 'react'; const MyComponent = props => { return 지금 {props.study}를 공부하고 있습니다.; }; export default MyComponent; src/MyComponent.js 파일이다. import React from 'react'; import MyComponent from './MyComponent'; const App = () => { return }; export default App; src/App.js 파일이다. 출력 화면을 보면 study 값이 "리액트"로 설정되어 출력된 것을 확인할 수 있다. MyComponent...
import React from "react"; import "./App.css"; function App() { const study = "리액트"; return ( {study} ); } export default App; 여기서 App은 함수형 컴포넌트이다. 이것을 다음과 같이 클래스형 컴포넌트로 변경할 수 있다. import React, { Component } from 'react'; import './App.css'; class App extends Component { render() { const study = '리액트'; return {study} } } export default App; render 함수가 사용된 것을 확인할 수 있다.
JSX에는 몇 가지 규칙들이 있다. 🔥 여러 element들은 하나의 element로 감싸야 한다. import React from 'react'; function App() { return ( JSX 문법 감싸기! ); } export default App; 위의 코드를 작성하고 터미널을 보면 에러가 발생한다. 보라박스는 개인 정보를 가린것이다! "must be wrapped in an enclosing tag" 문구를 확인할 수 있다. 여러 element들이 하나의 element에 감싸져 있지 않기 때문이다. 이 코드를 수정해보자! import React from 'react'; function App() { return ( JSX 문법 감싸기! ); } export default App; 코드를 수..
- Total
- Today
- Yesterday
- postman collection
- 2차 인터뷰
- hashcode
- 주생성자
- github
- git
- java
- 1차 인터뷰
- downTo
- solidity
- mysql
- postman
- postman tests
- 코딩테스트
- python3
- 코틀린
- Squash and merge
- go 특징
- 확장 함수
- Python
- pm.test
- Kotlin In Action
- 네이버 2022 공채
- Basic Type
- graphql
- pm.expect
- Kotlin
- string
- DGS Framework
- squash merge
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |