728x90 반응형 General Purpose10 for in vs for of 반복문 비교, Array .. in이 가능해서 생기는 문제 오늘 Typescript를 계속 공부하는 중에 갑자기 이상한 버그...는 아니고 미묘한 문법 차이로 생긴 1시간의 삽질을 방지하기 위해서 이 글을 올린다. 우선 이분의 글을 참고하였으니 좀 더 자세한 설명을 원하면 여기로 가면된다. https://jsdev.kr/t/for-in-vs-for-of/2938 자바스크립트 for in vs for of 반복문 정리 ES6 공부하면서 for in 과 for of 차이점이 뭔지 궁금해서 찾아보다가 정리해보았습니다. 잘못된 부분이 있으면 커멘트 부탁드려요~ http://itstory.tk/entry/Javascript-for-in-vs-for-of-반복문 foreach 반복문 foreac jsdev.kr 바로 본론을 이야기하면 이렇다. 분명 JS배울 때 같이 배웠을.. 2024. 3. 24. 객체 지향 프로그래밍의 5원칙 SOLID 강의를 듣다 보니까 개인적으로 필기해 두는 게 좋을 것 같아서 여기다가 간단하게 노트처럼 적는다.S. Single Responsibility Principle - 단일 책임의 원칙어떤 객체는 한번에 한 가지 책임을 져야 한다. 이는 굉장히 모호하지만 해당 객체에 변경이 있을 경우 다른 객체에 주는 영향이 작을 수록 좋다는 것을 기준으로, 그때 마다 판단한다.O. Open-Close Principle - 개방-폐쇄의 원칙 객체는 확장에는 열려있되, 개방에는 폐쇄적이어야한다. 다형성을 활용하면 인터페이스/구현체를 분리하므로 확장하는 방향으로 개발하기가 쉬워진다. 다만, 다형성만으로는 해당 원칙을 완벽하게 지킬 수 없는게 결국 구현체를 선택하는 부분에 있어서 의존성이 발생해서 해당 부분의 코드를 수정해야하기 .. 2024. 2. 17. joi 라이브러리로 입력값 검증, messages로 커스텀 메시지 작성하기 이번에 같이 개발하게 된 친구와 함께 협의한 것 중 하나는 우선 서로 같이 쓸 수 있는 개발일지를 만들어서 배포해 보자는 것이었다. 그래서 실제로 코드를 지금 github organization에서 공유하게 되었고, 적어 둔 TODO 중에서 제일 만만해 보이는 걸로 우선 스타트를 끊기로 했다. 그 만만하다는 작업이 "비밀번호 입력값 검증 강화"이다. 이미 joi 라이브러리를 이용해서 기본적인 입력값 검증을 하고 있었기 때문이다. const schema = Joi.object().keys({ username: Joi.string() .alphanum() .min(3) .max(20) .required() password: Joi.string() .min(6) .max(20) .required() }); 이.. 2024. 1. 5. [ES6] function 함수와 화살표 함수의 차이 - JavaScript function으로 만들어진 함수의 this는 자신이 포함된 객체를 가리킨다. function BlackDog() { this.name = '흰둥이'; return { name: '검둥이'; bark: function() { console.log(this.name + ': 멍멍!'); } } } const blackDog = new BlackDog(); blackDog.bark(); // 검둥이 : 멍멍 json 객체가 상위 객체로 있기 때문이다. 화살표 함수의 경우는 이렇다 : function WhiteDog() { this.name = '흰둥이'; return { name: '검둥이'; bark: () => { console.log(this.name + ': 멍멍!'); } } } const whit.. 2023. 11. 24. 파일 복사 관련 노트 기본적으로 파일을 열때 파일 핸들러인 FILE* 에 fopen 함수를 이용해서 연다. 좀 최저 계층 이야기라서 이게 정말로 쓸모가 있는지는 모르겠지만, python에서도 비슷하게 공부를 했던 적이 있어서 적어놓으려고 한다. C프 과제 중에 하나가 파일을 복사하는 프로그램을 만드는 것인데, 그 코드가 대략 이러하다 : #include int main(int argc, char **argv){ if(argc 0) fprintf(op, "%c", ch).. 2021. 11. 18. C++ Tips & Tricks - String 편 1. stringstream을 써보자. 가끔, cout으로 바로 아웃풋을 내기보다는 한번 string으로 저장하고 싶은 경우가 있을 수 있고, 그게 아니더라도 cout 쓰듯이 스트링을 빌드하고 싶은 때가 있다. "속도" 면에서 추천할 만한지는 모르겠지만, 간단하게 코드를 작성하고 싶다면 stringstream도 나쁜 선택은 아닌 것 같다. 아래는 res에서 각각의 글자사이에 ***를 넣은 스트링을 만들고 출력하는 코드이다. 마지막에도 ***가 붙는건 흠이지만... #include #include using namespace std; int main(){ string res = "what"; ostringstream oss; for(char c : res){ oss 2021. 9. 1. <C> 기본예제 Day03 - 함수와 분할 컴파일 이번 시간에 복습할 것은 2가지이다. 첫째로, 기본적으로 C 언어에대한 개념 설명을 하려고 한다. 지루한 파트이겠지만, 프로그래머라면 상식이니까 어느정도는 숙지하자. 둘째로, 다양한 함수와 기능을 테스트 하기 위해서 분할 컴파일이라는 것을 배우고, include의 진정한 의미를 알아보도록 하겠다. 그럼, C언어란 무언지를 알기위해서, 헤더 파일이라는 것을 하나 작성해보도록 하겠다. 너무 걱정할필요 없이, Day04.c와 함께, Day04.h라는 이름의 파일을 1개 작성하면 된다. 만약 [New] -> [header file]을 통해서 만들어 두었으면, 빈 파일이 아니라 무언가 이상한 것이 적혀있는 파일이 완성된다. /* * Day04.h * * Created on: 2020. 12. 18. * Autho.. 2021. 3. 2. <C> 기본예제 Day02 - 변수(1)(feat.주석) 이번 시간에 배워볼 것은 변수를 다루는 법이다. 다만, 이번 시간에 본격적으로 예제를 작성하기 전에, "주석"이라는 것을 하나 배우고 가자. 이런 소스코드를 작성해보자 : /* * Day03.c : 주석을 어떻게 다는지 알려주는 예제 */ #include //printf를 이용하기 위해 필요 int main(){ printf("hello world!"); //hello world!를 프린트함. return 0; } 실행해보면 이전의 Day01에 실행 시켰던 것과 별반 다르지 않은 내용이 나온다. /* 과 */ 사이에 있는 것은 "주석"(Comment)이라고 한다. 이건 여러분들이 자유롭게 무언가를 적어 놓을 수 있는 부분이다. 왜냐하면 컴파일러에서 이 부분은 코드로 간주하지 않고 무시하기로 약속했기 때문.. 2020. 12. 24. <C> 기본예제 Day01 - Hello world! 항상 처음이 제일 쉽고 끝맺는 것은 어렵기 마련이니까 이걸 끝까지 하겠다고는 못하겠지만 어찌됬건 과거의 기록을 한번 정리해보는 차원에서 C의 기본적인 예제들을 소개함과 더불어서 강의식으로 내가 아는 것들을 써내려 가보도록 하겠다.(대학에 입학해서는 조금 더 알게 된 내용들도 풀어볼까 한다. 뭐가 어찌되던 기억을 남기는 것이 중요하다고 했다.) 참고로, 소개될 예제는 C언어이다. C++예제는 아니다. 비슷한듯 다른 2개의 언어를 구분 짓기 좋은 방법중 하나는 처음의 헤더파일과, 쓰는 입출력 방식를 눈여겨 보는 것이다. c라면, 표준적으로 STandDard Input / Output 의 줄임말인, stdio.h 를 이용할 것이다. #include int main(){ printf("hello world!").. 2020. 12. 21. <C> 기본예제 Day00 - IDE세팅 Day01을 올리고 보니 개발환경에 대한 이야기가 턱없이 부족한 것 같아 이걸 작성하려고한다. 장인은 도구를 가리지 않는다고 하지만, 개발자의 생산성을 높이기 위해서는 IDE도 나름 중요하다. IDE란, Integrated Development Environment의 준말, 즉 통합 개발 환경의 준말이다. Visual Studio나 Eclipse같이 많이들 들어보고 이용한 프로그램부터 Code::Blocks, Dev c++, Aptana Studio등 쓰는 사람을 찾아보기 힘들어진 프로그램까지, 정말 다양한 종류의 IDE가 있다. 초보 개발자 주제에 강조하겠지만, 어떤 IDE던지 간에 기본적인 코딩과 프로젝트 작성능력은 거의 다 갖추고 있다. 제아무리 좋은 IDE를 쓰더라도, 결국 본인이 코드를 작성할 .. 2020. 12. 21. 이전 1 다음 728x90 반응형