일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- JavaScript
- type
- C#
- vue.js
- condition
- Clone
- leetcode
- property
- loop
- scss
- generic
- machine learning
- AI
- C++
- npm
- git
- bash
- dotenv
- security
- 앙상블
- Python
- TypeScript
- docker
- var
- 보안
- BOJ
- nginx
- VUE
- vuetify
- webpack
- Today
- Total
목록Development (105)
ice rabbit programming
학부 2학년으로 막 복학했던 17년 초, 당시 학과 선배에게서 github라는 것을 처음 들어보면서 git에 대해서 알게 되었다. 처음에 개념적으로 알아볼 때에는 버전 관리, 협업 등에 많이 이용되는 것을 알았고, branch, merge, pull request 등 많은 기능들에 대해서 읽었지만 정작 졸업할 때까지 commit을 제외하고는 사용이 많지 않았다. 입사 후에 git을 본격적으로 사용하면서 git flow에 대해서 알게 되었고, branch 전략과 PR, tagging 등 협업과 버전 관리를 사용하고 있다. 그래도 학부생 때 git을 조금이나마 사용해보아 익숙했던 것이 적응에 수월하기는 했다. 밑에서는 졸업 후 막 사용해본 필자의 경험을 토대로 쓰는 것이고, 잘 정리된 글은 여기를 참고하시길..
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에서는 같은 타입이라는 규칙에 위배..
Property 약 4개월간 C#을 써 보면서 여지껏 썼던 언어들과의 가장 큰 차이점이자 편리하다고 생각되는 것이 바로 이제 얘기할 Property(속성)이다. 클래스 내부의 변수는 Field(필드), 함수는 Method(메소드)라고 부르는데 C#에서는 Property가 추가로 존재한다. C++이나 Java를 접해보았다면 접근 지정자에 대해서 많이 들어봤을 것이다. 객체 지향 언어에서는 캡슐화를 통한 정보 은닉을 중요시하기 때문에, 외부에서는 꼭 필요한 경우에만 접근 가능하게 하고, 그러한 접근 또한 직접적으로 변수에 접근이 아니라 get/set 등의 함수를 통해서 하도록 한다. C#도 객체 지향 언어이기 때문에, 기본적으로 필드는 private으로 해두고 Property나 메소드를 이용해 접근한다. 즉..
이번 글에서는 Method, 메소드에 대해서 알아보자. C/C++에서 Function, 함수라고 부르는 것과 동일한 개념인데 C#에서는 명칭을 Method라고 한다. 실제 사용하는 분들께 들어보면 함수라는 용어와 메소드라는 용어를 혼용하는 것 같다. 보통은 같은 것을 가리킨다. 이 글은 C# 내용이므로 메소드 용어를 사용하겠다. 메소드는 타 언어와 유사하게 반환 타입, 이름, 인자, 내용으로 구성된다. public int Sum(int num1, int num2) { return num1+num2; } 일반적인 메소드(함수)에 대한 내용은 생략하도록 하고, C#의 메소드에 대해서 좀 더 알아보자. ref, out 인자에서 ref라는 키워드를 사용할 수 있다. Value Type에서 ref 키워드를 사용하..
JavaScript는 원래 브라우저 등에 이용되는 스크립트 언어였으나, 요즘에는 IoT, 서버(Node.js) 등 광범위하게 쓰이고 있고, 사용 언어 순위에도 꾸준히 등장하고 있다. 요즘 개발자라면 웹은 거의 필수적으로 다루고, 관련 없는 개발을 하더라도 발은 한 번씩 담가보기 때문에 자바스크립트를 다들 조금씩은 해보게 된다. (자바와는 다르다) 필자는 학부 시절(이라 해봐야 2년 전) vue.js와 node.js를 이용한 웹 페이지를 제작할 때 좀 다루어 보았다. 다만 그 때는 여느 학생이 그렇듯이, 구현을 하는 것에 큰 목적을 두었어서 틈틈이 언어에 대해서 알아보기는 했으나 차근차근 공부하지는 못했었다. 그러다 이번 기회에 JavaScript 강의를 접하게 되어, 필자가 듣고 정리하며 이 글을 보는 ..
XSS란, 웹사이트 관리자가 아닌 이가 악성 스크립트를 삽입하여 개인정보를 유출하거나 악성코드를 실행하는 공격 기법이다. 이전 글의 SQL 인젝션과 유사한 공격 기법인데, Javascript 구문을 넣어서 탈취한다는 차이가 있다. SQL 인젝션과 유사하다는 말은, 동일하게 유효성 검사를 통해 필터링해야 한다는 것이다. 더불어 웹사이트에서 동적으로 변하는 속성에 대해 DOM(Document Object Model) 구조 변경 시 검증이 필요하다. XSS는 크게 3가지로 나뉜다. Stored XSS : 서버에 저장하여 공격 Reflective XSS : 동적으로 생성되는 응답 페이지 작성 시 공격(링크를 눌렀을 시 공격) DOM XSS : DOM 구조 변경 시 공격 이러한 공격은 정규식을 이용한 입출력값의 ..
자료형까지 다루고 텀이 살짝 길었다. 오늘은 Array, 배열에 대해 다루려고 한다. 배열은 여느 프로그래밍 언어에 있는 것으로, [같은 타입, 연속된 메모리]라는 특징을 가진다. 연속된 메모리라는 부분 때문에 C/C++을 하신 분들은 배열과 포인터의 관계에 대해서 많이 학습을 하셨을 것이다. C#에서의 특징은 지난 글에서 설명한 것처럼 Reference Type이라는 것과, 모든 배열은 [] - Array - Object의 단계로 상속받는다는 점이다. int[] arr = new int[5]; // 기본적인 1차원 배열 int[] arr2 = {1,2,3,4,5}; // 이렇게 해도 5칸의 1차원 배열 int[,] arr3 = new int[3,2] // 다차원 배열 int[][] arr4 = new ..