ETC
-
[nGrinder] 서버 성능을 테스트하는 방법ETC 2022. 12. 20. 01:20
사내 서비스의 GS인증을 받기 위한 준비를 하고 있다. 인증 절차는 어떤식으로 진행이 되는지 알아야할 필요성을 느껴 조사를 좀 해보다가, 성능적합성 부문이 있다는 것을 발견했다. 실제 소프트웨어가 명시된 성능 목표를 만족하는지 테스트하는 절차였다. 이제까진 로컬이나 테스트 서버에서 포스트맨으로 요청을 보내 응답이 잘 오는지 체크해보는 정도가 다였는데, 이런 서버성능은 어떻게 테스트할 수 있나 궁금해졌다. 그래서 찾아보다 발견한 것이 nGrinder이다. 앞에 n이 붙은 것으로 알 수 있듯, 네이버에서 개발한 오픈소스이다. The Grinder라는 오픈소스를 기반으로 만들어졌다. 서버의 부하 테스트(stress test)를 제공하는 플랫폼으로, 직접 스크립트를 작성해 가상의 시나리오를 작성할 수 있고, 다..
-
java.lang.NoClassDefFoundError 원인 및 해결방법ETC 2022. 12. 19. 14:31
로컬환경에서 포스트맨으로 테스트 중, 200 응답이 나오고 데이터도 정상적으로 뜨는데 밑에 계속 java.lang.NoClassDefFoundError라는 에러가 나왔다. 스택트레이스를 따라 발생한 원인이 된 파일을 열어봤는데 코드가 써있지도 않은 라인에서 발생했다고 나왔다. 해당 에러는 컴파일 환경에서는 클래스 참조가 되었으나 실행환경에서는 찾을 수 없는 경우 발생한다고 한다. 간단하게 전체 gradle project를 리로드하니 해결되었다. (Gradle 탭은 우측 notifcations 탭 위에 위치해있다.)
-
Callback 함수란 무엇인가? 재귀함수와의 차이는?ETC 2022. 10. 3. 02:11
자바스크립트 프로그래밍을 하다보면 콜백 함수(Callback Function)이라는 용어를 많이 접하게 됩니다. 저의 경우에는 특히 오픈API의 가이드를 볼 때 가장 많이 접했던 것 같습니다. Callback 함수란? 자바스크립트는 어떤 함수를 실행할 때, 매개변수로 함수를 전달할 수 있습니다. 이 매개변수로 전달되는 함수를 콜백 함수라고 합니다. 간단한 예제를 만들어 보았습니다. 함수를 두 개 만들었는데, 첫 번째 fn함수에서는 매개변수로 받은 함수를 호출하고 있습니다. 두 번째 iAmCallback 함수는 매개변수를 콘솔에 출력하는 함수입니다. fn만 호출하되, 매개변수로 두 번째 함수를 전달하면 콘솔에는 다음과 같이 찍히게 됩니다. 어떤 함수를 호출할 때 매개변수로 숫자, 문자열 등을 전달하는 것과..
-
[HTML/CSS] 입력폼 유효성 검사에 필요한 input태그 pattern 속성ETC 2022. 7. 7. 04:18
과거엔 input태그에 양식을 작성하고, 데이터의 유효성을 검사하는 것은 JS로 해야했다. 이렇게 하면 만약 정규식을 쓰는 경우 입력 폼 하나하나마다의 정규식이 다르기 때문에 각각의 로직을 만들어야 한다. 코드량이 너무 많아지는게 맘에안든다. 이시대에 이렇게까지 해야한다고...?라는 생각이 들어 검색을 해보니, 역시나 이렇게 하지 않아도 된다. HTML5부터 input태그에 pattern속성을 사용할 수 있고, 여기에 정규식을 입력하면 자바스크립트로 유효성검사를 하지 않아도 자동으로 체크해준다. 추가로 maxLength, minLength 속성으로 최소, 최대 길이를 지정할 수도 있다. 이 속성을 적용하면 지정한 길이 밖으로는 입력이 되지 않는다. 예시로 전화번호 입력폼을 가져왔다. 해당 정규식은 숫자만..
-
패스워드 암호화(해시, 솔트, 키스트레칭)ETC 2022. 6. 28. 03:01
파이널 프로젝트 진행 중, 회원의 패스워드는 절대로 원본 자체를 DB에 저장하면 안된다는 강사님의 말씀을 듣고 암호화에 대해 공부해봤다. 일반적으로 패스워드 암호화는 해시함수를 통해 구현한다. 여기서 해싱이란? 이렇게 원본 텍스트를 알아볼 수 없는 문자열로 변환하는 작업을 의미한다. 엄밀히 말하면, 해싱과 암호화는 다르다. 암호화는 이 과정에서 복호화(encryption, decryption)을 거친다. 일반적으로 많이 사용되는 단방향 해시함수와 암호화의 가장 큰 차이점은, 단방향 해시함수는 원본 문자열의 복원이 불가하지만, 암호화는 복호화키를 사용해 평문으로 복원이 가능하다는 점이다. 예를들어, 1234라는 암호를 xzetjiosz#$7895dsfkjl; 라는 문자열로 변환했다면, 단방향 해시함수는 이..