1. 개요 회사에서 개발 중 이해하지 못하는 버그가 발생되었다. C++과 Java만 쓰던 나에게는 아직 JS의 문법이 어려운 것 같다. 오늘은 내가 마주친 버그와 이 버그를 이해(?)하기 위해 공부한 내용을 적어보고자한다.2. 본론2.1 C++에 익숙한 내가 마주친 버그 아래의 C++ 코드를 보자. #include using namespace std;int main() { int tmp = 0; cout tmp라는 변수가 if문의 블럭 밖에서 선언되고 또 그 안에서 한번 더 선언됐다. C++은 이런경우 더 가까운 변수를 참조하는 것으로 되어있다. 따라서 if문 안에 있는 if문은 if문 밖에서 정의된 tmp변수를 참조한다. 그럼 이것과 비슷하게 작성된 JS 코드를 보자. let tmp =..
1. 서론 회사에 큰 손해를 끼치며 배운 JS문법을 정리하고 같은 실수를 반복하지 않기 위해 과정을 정리하고자 한다. 사견이지만 JS는 자유도가 너무 높은 객체인 것 같다. 코테는 C++, 서버는 JAVA로 개발하고 지금 사이드 프로젝트에서는 Python을 사용하고 있기에 JS는 이번에 입사한 회사에서 처음 사용해본다. 처음 접한건 학교 웹 개발 수업에서 들은 정도... 자랑은 아닌데 따로 JS를 공부하지는 않았다. "여기저기 경험하고 다치면서 성장하는거지 뭐!" 라고 생각했는데 8톤 트럭에 치이고 콤마 상태 한 번 갔다 와보니 심각성을 느꼈다. 어떤 실수였는지에 대한 자세한 내용은 아래의 포스팅에 정리하였다.https://apape1225.tistory.com/169 [산업기능요원] 크나큰 실수 기념..
1. 개요 비트코인 자동매매 시스템을 만들고 Unix 서버에 배포하였다. 클라우드를 이용하고 싶었지만 정말 돈이 감당이 안돼서 무서웠다. 그래서 안쓰는 노트북에 Ubuntu를 설치하고 서버로 사용하고 있는데, 해당 과정에서 발생한 오류를 해결하는 과정을 적고자 한다. 2. 본문 가장먼저 만난 오류는 ImportError이다. 내가 작성한 Python 객체를 import해서 사용하기 때문에 해당 프로젝트를 path를 설정하지 않으면 module을 찾지 못한다. 다음은 내가 작성한 프로젝트의 구조이다. 해당 경로에서 machine, db에 정의된 모듈을 써야하지만 해당 path를 찾지 못하면 아무 의미 없다. 다음과 같은 명령어로 python이 모듈을 import하는 경로를 알 수 있다. (리눅스 환경에서)..
1. 개요 구현 문제단원을 풀어보는 과적엥서 문자를 찾아 지우는 erase()함수는 있어도, 인덱스를 기준으로 삭제해주는 함수가 없기에 만들어보면 유용할 것 같다는 생각이 들었다. 인덱스를 기준으로 문자 하나를 입력했을 때 해당 자리의 문자를 제거해주는 함수를 만들어 보았다. 2. 이론 구현 이론은 간단하다. 해당 인덱스까지의 문자열을 자르고 그 뒤의 인덱스를 다시 잘라 기존 전자의 인덱스와 더해주면 된다. 3. 코드 - 인덱스 기준의 문자 제거 코드 string erase_char(string str, int index) { string buff; buff = str.substr(0, index); buff += str.substr(index + 1, str.size() - (index + 1)); r..
1. 개요 최근 알고리즘 테스트에 현타란 현타를 강하게 맞아서 '나동빈'님의 책인 '이것이 취업을 위한 코딩테스트다.' 라는 책을 통해 체계적으로 공부중이다. 그중 구현 단원에서 문자열에 관한 C++문법을 정리해봐야 겠다는 생각이 들어 글을 쓰게 되었다. 예제 4-1의 상하좌우 문제이다. 2. 이론 String자료형은 매번 문자형의 배열을 사용하던 나에게는 신세계이자 구원자였다. 그러나 C++도 결국 C계열인지 메모리와 같은 부분을 신경써야 한다는 것을 뼈저리게 느끼는 중이다. 그래도 C에 비하면 심각하게 어려운 것이 아니니 관련 자료를 찾으며 공부하였다. 이번 글에서는 C++에서 문자열을 입력받고 이를 문자로 추출할때, 그리고 버퍼를 비우는 방법에 대해 작성할 것이다. 3. 예시 코드 - 문자열에서 문..
1. 개요 백준 알고리즘 문제를 풀다가 문자열에서 정수들을 추출해야 하는 경우가 발생했다. 문자열은 질리도록 나를 괴롭혔고 날이 날인지라 정말 극강의 하기 싫음을 느끼고 혹시나 하는 마음에 구글링을 시작했다. 'string 토큰 분리'라는 키워드로 구글링을 해보니 'stringstream' 이라는 클래스가 나오고 나는 바로 이 클래스를 공부하기 시작하였다. 2. 이론 stringstream은 문자열에 자신이 원하는 자료를 찾고자 할 때 유용한 클래스이다. 예를 들어 "76 65.7"이라는 문자열이 있을 때 76이라는 정수만 뽑고 싶을 때 stringstream클래스를 사용하면 훨씬 간편하게 구용할 수 있다. 다음 코드들을 보자. 3. 예시 코드 - 문자열에서 정수 추출하기 백문이 불여일견! 다음 코드를 ..
1. 문제 자료구조 tree공부하다가 입력된 정수를 가지고있는 data를 찾아주는 함수를 작성하고 싶었다. 그 함수는 값을 반환함과 동시에 tree를 전체적으로 탐색하는 역할을 수행해야한다. Tree를 직접 구성해보신 분들은 알겠지만, tree의 탐색은 재귀함수로 작성하는 것이 정말 간편하다. (나도 내입에서 재귀함수가 편하다고 할줄은 몰랐다......) 문제는 여기서 발생한 것이다. root → 왼쪽 트리 → 오른쪽 트리 순으로 탐색하는 전위탐색을 구현하였는데, 왼쪽 탐색을 진행하여 결과가 없을 때, return문이 중간에 끼어있으면 오른쪽 트리를 탐색하지 않고 재귀를 멈추는 오류가 발생하였다. 따라서 재귀호출 안에서 재귀호출을 두번할 때 발생하는 문제에 대해 알 수 있게 코드를 작성해보았다. 2. 해..
1. 문제 이 문제는 백준 알고리즘 2941번과 관련된 문제이다. 문제를 보면 알겠지만, 나는 이 문제를 논리 연산자와 반복문 만으로 해결하고자 하였다. 혹시 문제가 궁금하신 분들은 아래의 링크로 들어가면 볼 수 있다. 문제: https://apape1225.tistory.com/30[백준 알고리즘] 2941번 - 크로아티아 알파벳1. 문제, 예시 시행결과 이번 문제는 나름 시간이 걸린 문제이다. 문법으로 틀린 문제가 아니라, 논리로 우류가 났기 때문에...... 사실 이런 문제도많이 틀려가면서 스스로 부족한 점을 알아가��apape1225.tistory.com 보면 알겠지만 논리 연산자에 괄호도 있고...... && 연산자를 맨 뒤에다 쓰고...... 복잡해 보이기는 하지만, 나름 시행착오를 통해 작성..
- Total
- Today
- Yesterday
- 백준 알고리즘
- 프로그래머스
- 코테
- 코딩
- 안드로이드 스튜디오
- java
- 코딩테스트
- 자료구조
- 알고리즘
- 안드로이드 프로그래밍
- CJ Olivenetworks
- CJ
- 백준
- 백준알고리즘
- XML
- Spring Boot
- Programmers
- CJ 올리브네트웍스
- 육군
- BaekJoon
- 비트코인
- c++
- C언어
- 후기
- 기록지
- 문자열
- Python
- 구현
- spring
- 개발자
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |