일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 보안
- bash
- machine learning
- webpack
- Python
- BOJ
- npm
- vue.js
- vuetify
- condition
- dotenv
- Clone
- git
- AI
- loop
- 앙상블
- TypeScript
- C#
- type
- property
- scss
- docker
- security
- VUE
- C++
- nginx
- var
- leetcode
- JavaScript
- generic
- Today
- Total
목록Development (105)
ice rabbit programming
사실 티스토리에 글을 올리면서, 아직 방문자 분들이 많지는 않지만 지식 공유가 목적의 한 부분이긴 했으나, 내용 정리에 목적도 있어 C#, C++ 등의 언어를 다룰 때에는 기본적으로 프로그래밍에 대해서 어느 정도 안다고 하고 글을 쓰고 있었다. 하지만 이번에 자바스크립트 강좌는 상당히 기초부터 시작해서, 입출력/자료형 등 기본적인 부분부터 다루고 있다. 필자는 자바스크립트를 미약하게나마 써본 적은 있어서 실제 강좌에서는 스킵했으나, 정리는 해 두려고 한다. 자바스크립트의 문법은 다른 언어들과의 문법과 비슷하다. 이전 글에서 설명한 'var' 키워드나 나중에 비동기, 콜백 부분으로 넘어갔을 때 아마 많은 차이를 느낄 것이다. 연산 기본적인 사칙연산(+, -, *, /, %)과 증감연산(++, --), 논리..
이 기능도 학부 때는 몰랐는데, 굉장히 유용한 기능이다. stash는 넣어두다라는 뜻인데, 이름 그대로 commit하지 않고 임시로 넣어두는 것이다. 필자는 다른 브랜치로의 checkout이 필요한데 아직 작업 중일 때 주로 사용한다(작업 중이니 아직 commit이 불가하므로). 만약 commit이나 stash를 하지 않고 다른 브랜치로 checkout 하려고 시도하면 에러가 발생한다. git stash // 작업 중이던 파일을 임시 저장 git satsh save // 위와 같은 동작, 임시 저장 git stash list // 임시 저장된 stak의 list를 본다. git stash apply [이름] // list에서 확인한 이름의 stash를 가져온다. git stash apply // 최신의 ..
자료형 여타 프로그래밍 언어와 비슷하게, DB에도 담는 데이터에 자료형이 있다. 자료형은 데이터의 유효한 값, 수행 가능한 연산, 의미, 저장 방식 등을 결정하기 때문에 굉장히 중요한 개념이다. 유효한 값이나 수행 가능한 연산 등은 견고한 서비스를 만들 수 있고, 나아가 보안에도 영향을 미치기 때문에 신경써야 한다. int, float 등은 다른 언어와 비슷한데, varchar라는 자료형은 DB를 다뤄보지 않았다면 생소할 수도 있다. varahcar는 variable char로, 가변 문자열이다. char와의 차이점은 다음과 같다. char(8) : 무조건 8자리 문자열, 6자리가 입력되어도 8자리의 공간 차지 varchar(8) : 최대 8자리 문자열, 6자리가 입력되면 6자리의 공간 차지 그러므로 꼭..
요즘에는 NoSQL도 많이 쓰이지만, 전통적으로 RDBM은 굉장히 많이 쓰였고, 현실 세계를 반영하기에도 좋다. 이번에 SQL 강좌를 수강하면서 내용들을 정리해 보려고 한다. 관계형 데이터베이스 : row와 column으로 이루어진 하나 이상의 테이블의 관계로 이루어진 데이터베이스 각각의 테이블들이 있고, 이들이 관계를 가지는 것이 가장 기본적인 개념이다. 학생-과목-교사 등이 관계를 가지는 학생 관리 DB 등을 예시로 들 수 있겠다. 같은 관계형 DB라도 DBMS에 따라 SQL 문법이 다르다. MySQL, MS-SQL, Oracle 등 다른 DBMS에서 공통되는 문법도 존재하지만 다른 문법, 기능도 존재하기 때문에 반드시 해당하는 DBMS의 명령어를 잘 알아보고 사용해야 한다. ( select vers..
JavaScript에서는 데이터 타입별로 사용자를 위해 사전에 작성된 편의 기능인 프로퍼티와 메소드를 제공한다. JavaScript에서 모든 것은 객체라고 첫 글에 언급하였다. 프로퍼티는 해당 타입 객체 내의 변수, 메소드는 객체 내의 함수라고 생각할 수 있다. C++의 STL에서 제공해주는 함수들이나 C#에서 기본적으로 제공하는 프로퍼티, 메소드와 비슷하다. var str1 = "Hello, World!"; // string str1.length; // length property str1.charAt(0); // method str1.split(" "); // method var fruit = ["apple","pear","grape"]; // array fruit.length; // length p..
이번 글에서는 아주 중요하고 또 자주 쓰이는 개념인 Generic에 대해서 다루어보려고 한다. C++의 Template, Java의 Generic과 같은 개념으로 메소드나 클래스를 여러 타입에 대해서 똑같이 쓸 수 있는 것이다. 다음 예시로 필요성을 한 번 보자. public double SumDouble(double d1, double d2) { return d1+d2; } public int SumInt(int i1, int i2) { return i1+i2; } 만약 Generic을 사용하지 않고 double의 합과 int의 합을 구하고 싶다면 메소드 오버로딩을 통해서 구현했을 것이다. 틀린 구현은 아니지만 작성하기 번거로우며, 같은 동작을 하는 메소드가 두 개 존재하여 가독성을 해치고 혼란을 줄 ..
얼마 전 visual studio를 쓰다가 자꾸 중지되어 여러 번 프로세스 강제 종료를 한 적이 있었다. 그러다 갑자기 어느 순간 솔루션의 한 시점의 열린 탭이 고정되어, 아무리 바꿔도 해당 솔루션을 껐다 키면 그 때의 탭 상태로 돌아가는 것이었다. 코드는 바뀐 게 반영된 것을 보니 자체에 문제가 있었던 것은 아니었으나 평소 현재 개발에 필요한 탭들을 핀으로 고정하고 쓰기 때문에 여간 신경쓰이는 게 아니었다. 어떻게 검색할지도 모르겠어서 살짝 헤매다가 stackoverflow에서 결국 찾아냈다. 해당 프로젝트 폴더 밑의 .vs/.suo를 삭제한 후에 솔루션을 다시 열면 초기화가 된다.
이번에는 C# 8.0에서 새로 나온 최신 문법인 Index 타입과 Range에 대해서 짧게 작성해보려 한다. Index라는 타입과 Range라는 타입이 새로 생성 되었는데, 다음과 같이 쓴다. arr[^2] // 뒤에서부터 2칸(단, 1부터 시작) Index i = new Index(0, false); // index와 방향 지정 s1[2..7] // 2이상 7미만 Range r = new Range(2,4); // 2이상 4 미만 Index 타입은 이전 글의 Indexer 구현 시에 사용한다면 객체를 배열처럼 사용할 수 있다. 다만 Length나 Count Property를 생성하면 int로 indexer를 만들어도 가능하긴 하다. range 타입은 Range(2,4), Range(2..4)등 모두 가..