프로그래밍(Web)/업무관련

    [바미] JS에서 for-in 보다 for문을 더 쓰자!

    얼마전에 저를 힘들게? 했었던 코드가 하나 있었습니다. for (let i in this.array) { if (this.array[i].choice) this.index = i; } 이런 형태의 코드 였습니다. 저 부분에서 int형의 값을 가져와야 하는데 자꾸 "1", "2,"와 같은 문자형으로 가져왔고, 해당 부분은 제가 작성한 코드의 부분이 아니였기 때문에 어디 부분이 문제였었는지 파악하는데 더 애를 먹었었습니다. 그러다 알게 된 건 for-in 을 쓰게 되면 i가 오브젝트도 통과가 된다는 사실을 알게 되었습니다. 그래서 저 문법이 조금 위험할 수 있다는 걸 알게 되어 for (let i = 0; i < this.array.length; i++) { if (this.array[i].choice) t..

    [바미] 전문 통신과 TR 통신에 대해서.

    오늘 전문 통신과 TR 통신에 대해 접할 기회가 생겨 정리해보았습니다. 전문 통신 전문(全文) - 서로 주고 받을 데이터의 포맷을 약속(프로토콜)한 후 약속된 데이터 패킷을 전송하고 수신하는 것을 말합니다. 영어로는 full-text 라 불리고 특성상 고정 길이로 전송하죠. 예전에는 바이트배열 형태로 통신을 했습니다. (언어는 달라도 바이트 배열은 다 사용이 가능하니까요.) C언어와 자바와의 통신도 바이트배열은 가능합니다. (바이트는 어느 언어에서든 사용하는 자료형이니까요.) 이때 양측에서 정해진 규칙에 따라 통신을 하게 되는데 대강 이런 형식입니다. 예를 들어 총 길이가 8인 전문 통신을 한다고 가정할 때, 0 ~ 3 길이까지는 사용자 아이디로 4 ~ 7 길이까지는 금액이라고 데이터 포맷을 설정 합니다..

    [바미] Javascript (!) Missing global variable name 에러 해결하기.

    안녕하세요. 오늘은 (!) Missing global variable name 에러관련하여 글을 써보려고 합니다. 디버그 시 위와 같은 에러가 뜨면 상당히 난감해질 때가 많이 있을 것 같습니다. 보통 제가 위의 에러를 경험했을 때가 import Library from '../../ExmpleLibrary' 위와 같이 어떤 라이브러리나 파일을 import 하는 상황에서 많이 접했습니다. 그래서 import시 발생했을 때 어떻게 해결했는지 공유하고자 합니다. 1. 경로 문제 실제로 import 하려는 파일의 경로가 잘 못 되었을 때 발생하는 경우인데요. 원래 파일은 '../../Forder/File'에 있는데 import importFile from '../../../Forder/File' 위와 같이 지정했..

    [바미] VScode중 tab키가 먹통일 때 해결 방법.

    오늘 VS Code를 사용하던 중 띄어쓰기로 작동하지 않고, 포커스 이동만 계속되는 현상이 발생하여서 찾아보던 문제 였습니다. Ctrl + M키를 누르면 해결 되는데 이 단축키를 입력 시 탭키가 커서를 뒤로 미는 기능이 아닌, 포커스를 이리저리 옮기는 기능으로 변경됩니다.

    [바미] Kafka 서버 설치 및 실행하기.

    https://kafka.apache.org/downloads Apache Kafka Apache Kafka: A Distributed Streaming Platform. kafka.apache.org 위 링크에서 다운로드를 진행 하시면 되는데요 src가 아니라 Binary 다운로드를 진행해야 해요! 오늘 기준으로 2.8.0이 가장 최근 버전이네요! 이 후에 다운로드를 받게 되면 윈도우 전용 폴더가 생기는데요. 이 압축 파일을 C드라이브에 풀어줍시다. 먼저 zookeeper 를 실행 시켜야 하는데 그 이유는 zookeeper가 카프카를 관리해주기 때문에 zookeeper가 먼저 실행 되야 카프카가 실행 할 수 있습니다. C:\카프카설치경로\bin\windows\zookeeper-server-start.b..

    [바미] 개발 하면서 사용해 본 협업 툴들

    저는 개발후에 문서정리를 꼼꼼하게 하는 편입니다. 나름대로 잘 정리된 문서에 희열감도 느끼곤 하는데 그러다보니 다양하게 문서, 업무정리를 도와주는 툴을 경험하게 되었고, 제 주관적인 경험을 토대로 장점, 단점(또는 특징)을 공유해보려 합니다. 여담이지만, 제목에 '협업 툴'이라고 적었지만 프로젝트 관리, 문서정리, 업무정리, 등을 문서와 관련된 부분들을 도와주는 툴을 뭐라 해야 할 지 몰라 '협업 툴'이라고 하였습니다. 1. Notion(접속링크) 노션은 제가 제일 처음으로 사용해 본 툴입니다. 회사에서 노션으로 문서 관리를 하여 사용하게 되었는데 사용한 부분은 다음과 같습니다. 1. 업무 정리(진행 예정 업무, 진행 된 업무.. 등등). 2. API 주고 받을 때(GET, POST, UPDATE, DE..

    [바미] JMeter 설치부터 사용기 (Windows)

    현재 서버에서 제공하는 서비스가 목표하는 최대 사용자 수에 도달하기 위해 현재 성능을 파악하고, 개선하는 작업을 하기 위해 윈도우 환경에서 이 부분을 어떻게 설치했고, 사용했는지 공유하고자 올려봅니다. Apache Jmeter? 서버가 제공하는 서비스에 대한 성능을 측정하고 사용자에게 보여주는 테스트 도구라고 할 수 있습니다. 나의 웹 서버는 얼마나 많은 요청을 견딜 수 있는가?를 측정 하는 것이라 생각하면 될 것 같습니다. 설치 http://jmeter.apache.org/download_jmeter.cgi Apache JMeter - Download Apache JMeter Download Apache JMeter We recommend you use a mirror to download our re..

    [바미] Golang reflect 함수 사용하여 필수 값 체크 함수 만들기.

    지난번에 했었던 nil값 체크에 이어서 업그레이드 시켜본 함수입니다. 지난번과 차이가 있다면 1. 필수 입력 필드 중 입력 받지 못한 필드만 출력 됩니다. 한 줄 한 줄 입력 받은 데이터를 가져와서 빈 값이 생길 때 빈 값인 필드 이름만 출력이 되는것이 아니라 필수로 입력해야하는 필드 이름 전체가 출력이 되었다는 점입니다. (nil값 체크 참조) 만약 필수 값을 채우지 못한 에러가 생겨 났을 시, 제대로 데이터가 들어갔는지 체크 해줄 시에 복잡했던 부분이 방대한 데이터들이 끊임없이(또는 쉴새없이) 내려오는 상황에서 필수 값 필드 전체가 한 줄로 출력이 되어 한 눈에 보고 파악하기 힘들었고, 조금은 불편했습니다. (물론 코드는 간단했지만요..) 2. reflect 함수 사용으로 입력 하는 struct에 다..

    [바미] Golang JSON에 입력된 UTC 시간 값 비교하기

    UdateTime, err := time.Parse(time.RFC3339, "2021-05-4T07:08:42Z") if err != nil { err = errors.New("Date 포맷팅이 올바르지 않습니다.") log.Println("UDate :", "2021-05-4T07:08:42Z") SenddingToPanic(err) } 이런식으로 체크하면 되는데 UdateTime, err := time.Parse(time.RFC3339, JSON에서 UTC값 받아오는 변수) if err != nil { err = errors.New("Date 포맷팅이 올바르지 않습니다.") log.Println("UDate :", JSON에서 UTC값 받아오는 변수) SenddingToPanic(err) } 이렇게..