일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- condition
- TypeScript
- Clone
- var
- generic
- property
- type
- docker
- 보안
- bash
- C#
- C++
- nginx
- JavaScript
- Python
- webpack
- VUE
- dotenv
- leetcode
- vuetify
- 앙상블
- BOJ
- git
- vue.js
- AI
- loop
- machine learning
- scss
- security
- npm
- Today
- Total
목록분류 전체보기 (162)
ice rabbit programming
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)등 모두 가..
학부 2학년으로 막 복학했던 17년 초, 당시 학과 선배에게서 github라는 것을 처음 들어보면서 git에 대해서 알게 되었다. 처음에 개념적으로 알아볼 때에는 버전 관리, 협업 등에 많이 이용되는 것을 알았고, branch, merge, pull request 등 많은 기능들에 대해서 읽었지만 정작 졸업할 때까지 commit을 제외하고는 사용이 많지 않았다. 입사 후에 git을 본격적으로 사용하면서 git flow에 대해서 알게 되었고, branch 전략과 PR, tagging 등 협업과 버전 관리를 사용하고 있다. 그래도 학부생 때 git을 조금이나마 사용해보아 익숙했던 것이 적응에 수월하기는 했다. 밑에서는 졸업 후 막 사용해본 필자의 경험을 토대로 쓰는 것이고, 잘 정리된 글은 여기를 참고하시길..
https://leetcode.com/problems/single-element-in-a-sorted-array/ Single Element in a Sorted Array - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 업무에 조금 바쁘다보니 챌린지를 사실상 접었다..하하 ㅠㅠ 정렬된 배열에서 한 번만 등장하는 원소를 찾는 문제였다. 예전에 비슷한 문제를 풀었던 것 같은데 잘 기억나지 않는다. bool, map 등을 사용하는 생각을 했지만 그냥 간단하게 구현..
C#의 첫 글에서 언급했듯이, 필자는 학부생 시절 C++을 주로 사용했고, 입사 후에는 C#을 주로 사용하고 있어 바쁘게 배우고 있다. 4학년 2학기에 1학년 C++ 기초 수업을 학부생 조교로 참여해서 그 때의 경험을 정리할 겸 글을 쓰려 했는데, 겨우 5개월 정도밖에 되지 않았는데도 C++를 사용하지 않으니 많이 까먹게 된 느낌이 든다. 확실히 이전에 학부 강의, PS, OpenCV, QT 등을 제외하면 C++로 어떤 프로그램이나 시스템을 만든 경험은 없기 때문인 것 같다. 그래서 더 잊기 전에 리마인드도 하고, 배웠던 지식들을 기록해두자는 마음에서 기초적인 내용부터 정리해 보려고 한다. OpenCV, QT, Server, 언리얼 등 광범위하게 사용되고 있고 해마다 조사하는 언어별 점유율 순위에서도 항..
지난 글에서 설명한 String, Number, Function 타입에 이어서 데이터 타입에 대해 다루려 하는데, 내용이 많을 것 같지는 않다. 네 번째 타입은 Array 타입이다. 배열은 여느 언어에 있는 것과 같이 [같은 타입, 같은 크기]의 변수들을 묶어서 보관하는 타입이다. var arr = [] // ok var fruit = ["apple", "banana"]; // ok var fruit2 = ["apple", "banana", 1]; // 타입이 다르므로 error console.log(fruit); // 배열 자체 console.log(fruit[0]); // 배열의 첫 번째 index 값 위 fruit 배열과 같이 사용하는 것이 일반적이며, fruit2에서는 같은 타입이라는 규칙에 위배..