프로그래밍(Web)

    [바미] JS ajax에서 success한 result값 return하기

    $(document).ready(function() { // 검색결과 값 가져오기. let data_result = search_data(); }) function search_data() { var success_data = ""; $.ajax({ url : 'any URL', // 통신하려는 URL type : "POST", async: false, data : { param1 : param1, // url과 함께 보내줄 값 적어주시면 됩니다. param2 : param2, }, success : function(result) { if (result) { // data 전달 success_data = result; } else { console.log("Not Result"); } }, error :..

    [바미] 간단하게 Array, String 포맷 바꾸기.

    안녕하세요. 오늘은 splice(), split()을 사용하여 Array, String의 포맷을 바꾸는 방법을 예제로 알려드리려 합니다. 먼저 아래와 같은 형태의 Array에서 양쪽 대괄호만 없앤 형태인 'DE', 'PL', 'BD', 'SE', 'CE', 'WEB' 으로 변경할 때 사용하는 예제입니다. var arr =['DE', 'PL', 'BD', 'SE', 'CE', 'WEB']; "'" + arr.join("', '") + "'"; 두 번째로 String 형태의 데이터가 ','나 '-', '/'과 같이 특정 문자로 나뉘어져 있는 부분을 다른 형태로 나눌 때 사용하는 예제입니다. var str = "a,b,c" var changedstr = str.split(',').join('ㆍ'); // ch..

    [바미] Ajax data 주의 사항.

    Ajax에서 data로 보낸 뒤, Node SQL에서 파라미터로 받는 식의 형태로 작업하고 있던 중에 있었던 일입니다. result [Object: null prototype] { objA: 'data', objB: 'data', objC: 'data', objD: 'data', objE: 'data', objF: 'data' } 이런식으로 body를 보냈는데 objC값을 단일 값이 아닌 다중 값으로 변경되어 array로 보내주어야 했습니다. objC값을 받아오는 부분이 아래와 같은데 All A B 해당 부분 중 선택된 부분을 가져오기 위해 // name이 같은 div 값들을 배열에 담는다. var checkboxNames = new Array(); $('.filter_item.on').each(func..

    [바미] Header 관련한 삽질기

    GO를 사용하여 서버를 구축하고, 운영중에 있는데 문뜩 외부에서 Postman을 사용하여 무분별한 Post가 이뤄질 때, 우리의 데이터를 파싱할 때 이것을 막는 방법이 없을까? 생각해보게 되었습니다. 물론, 내부에 필수값이 존재하기 때문에 여기서 1차적으로 걸러지지만 이런것도 언젠간 뚫리기 마련이기 때문에 좀 더 단단한 무언가가 있었으면 좋겠다 생각이 들었습니다. 물론 완벽한 보안이라는 것은 존재하지 않지만 최소한의 방어벽을 둘러보고 싶었습니다. 먼저 찾아본 것은 'X-Csrf-Token'였습니다. 거기다 고릴라 안에 있던 패키지였기 때문에 이거다! 싶었죠. https://github.com/gorilla/csrf GitHub - gorilla/csrf: gorilla/csrf provides Cross..

    [바미] 서로가 서로를 필요로 할 때

    class ExamClass { constructor() { ... this.init(); } init() { this.A = new constructorA(this.B); this.B = new constructorB(this.A); this.C = new constructorC(this.A, this.B); } } 위처럼 A는 A를 생성하기 위해 B가 필요하고, B는 B를 생성하기 위해 A가 필요하는 상황이였습니다. 그 때는 ExamClass를 사용하여 해결하였습니다. class ExamClass { constructor() { ... this.init(); } init() { this.A = new constructorA(this); this.B = new constructorB(this.A); t..

    [바미] 이벤트 버블링 (Feat. 너는 움직이면 안돼지..)

    얼마전 JS로 업무를 보던 중에 생겼던 일입니다. 그 문제들을 해결하기 위해 공부하며 알아왔던 것들을 공유하고자 올리게 되었습니다. 어떤 창 안에서 무언가를 삭제 하려 할 때 확인 팝업창이 뜨게 되는데 그 확인 창을 닫게 될 때 그 창도 같이 닫히게 되는 버블링 현상을 마주하였습니다. 좀 더 쉽게 설명하자면 예시로 다나와 견적함을 들자면 여기에서 SSD항목을 삭제하려 할 때 삭제하겠냐는 확인 창이 뜰 것이고, 확인, 취소를 누르면 견적함 창까지도 꺼졌던 것이지요. 이 문제를 해결하기 위해 이벤트 버블링에 대해 알아야했고, 그 전에 이벤트 등록에 대해 알고 있어야 했었습니다. 이벤트 등록이란 웹 애플리케이션에서 사용자의 입력을 받기 위해 필요한 기능입니다. 아래와 같은 코드를 말하는데 print Event..

    [바미] 메모리 릭(memory leak)현상을 마주하다.

    메모리 릭(memory leak) 현상은 현상은 컴퓨터 프로그램이 필요하지 않은 메모리를 계속 점유하고 있는 현상을 말합니다. 할당된 메모리를 사용한 다음 반환하지 않는 것이 누적되면 메모리가 낭비되고, 더 이상 불필요한 메모리가 해제되지 않으면서 메모리 할당을 잘못 관리할 때 발생하죠. 이 일이 어처구니 없는 실수로 제게도 발생해버렸습니다. 실시간으로 조회하는 함수() { functionA(); ... } 원인은 지속적으로 무언가를 조회하는 함수 안에 있는 functionA() 안에서 의미없는 오브젝트를 생성했기 때문이였는데요. fucntionA() { let objectA = new class(); } 이번 일을 계기로 콘솔창에 있는 좋은 기능을 하나 알게 되었는데요. Perfomance monito..

    [바미] JavaScript Object 중복 없애기

    let dataarr = []; var memberData = new Object(); memberData.model = "K5"; memberData.brand = "Kia"; memberData.price = 3000; dataarr.push(memberData); memberData = new Object(); memberData.model = "K3"; memberData.brand = "Kia"; memberData.price = 1000; dataarr.push(memberData); memberData = new Object(); memberData.model = "K7"; memberData.brand = "Kia"; memberData.price = 4500; dataarr.push(me..

    [바미] JavaScript GMT 값만 뽑아오기.

    GMT 값을 뽑아와 "+HH:MM" 형태로 만들기 위해 사용한 방법입니다. let today = new Date(); // Fri Mar 04 2022 11:13:37 GMT+0900 (한국 표준시) let format = today.toString().substring(28, 34); // +0900 이 상태에서 "+09:00" 형식으로 만들어 주려면 +09와00사이에 ":"를 넣어주면 됩니다. let formatGMT = format.slice(0,3) + ':' + format.slice(3,5); // '+09:00' 이렇게요. 추가적으로 today.toString().substring(시작점, 끝점) 만 사용하시면 원하시는 부분을 잘라 사용하실 수 있습니다.