본문 바로가기

DEVELOPMENT100

티스토리 댓글 공격 삭제하기 let max_count = 10 let count = 0; // 실행 횟수를 카운트할 변수 // 실행할 함수 function myFunction() { document.querySelector('#checkComments').click() document.querySelector('.btn_opt').click() document.querySelector('.btn_g[value="휴지통으로 이동"]').click() count++; // 함수가 실행될 때마다 횟수를 증가시킴 console.log(count, "회 삭제") if (count >= max_count) { // 실행 횟수가 5회 이상이 되면 clearInterval을 호출하여 setInterval을 중지함 clearInterval(inte.. 2024. 3. 25.
네이버 툴팁 만들기 리뉴얼된 네이버의 메인페이지를 보니, 툴팁이 정말 많이 사용되었다는 것이 느껴졌다. 그래서 네이버는 툴팁을 어떻게 관리하는지 확인해보고 싶어졌다. 툴팁이란, 사용자 인터페이스 요소로 해당 기능에 대한 보충설명을 나타낼 수 있는 말풍선등을 의미한다. 툴팁을 이용하면, 신규 사용자에게 서비스의 중요한 기능/가치를 쉽게 알려줄 수 있다. 각각의 툴팁은 쿠기에서 관리가 되는데, 예시로 "더 많은 콘텐츠를 둘러볼 수 있어요!" 라는 툴팁을 제거하자 tooltip_paging_close: 1이 설정되었다. 이후엔 새로고침을 해도 해당 툴팁은 다시 나타나지 않았다. tooltip_setting_close, tooltip_shoppingbox_close, tooltip_paging_close 와 같이 각각하나씩 저장되.. 2023. 5. 25.
postman 현재시간 post요청 보내기 Postman에서JSON 데이터에 현재시간을 담아 요청을 보내고 싶을 때는 {{ currenttime }} 과 같이 담아서 보내면 된다. 물론 이전에 currenttime 이라는 값을 선언해주어야 한다. prerequest script에서 momen를 이용하여 현재시간을 담아두면 request를 보내기전에 실행이 되어 그 때마다 현재시간을 설정할 수 있다. var moment = require('moment') pm.environment.set( 'currenttime', moment().format(("YYYY-MM-DDTHH:mm:ss.sssZ")) ) 2023. 3. 10.
EBS 볼륨 파일 시스템 확장 각 볼륨의 사용중인 파일 시스템을 확인(dh -hT) 볼륨에 확장해야 하는 파티션을 확인(lsblk) xvda라는 루트 볼륨에 xvda1이라는 파티션이 존재하는 것을 확인 볼륨크기만큼 파티션을 늘리기 (sudo growpart /dev/xvda 1) 파티션에 늘어난 볼륨 크기가 반영되었는지 확인(lsblk) [ex4볼륨]의 파일 시스템을 확장 (sudo r esize2fs /dev/xvda1) 최종적으로 파일 시스템에 늘어난 볼륨 크기 반영되었는지 확인(dh -h) 참고:https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/recognize-expanded-volume-linux.html 2022. 6. 30.
SSL error: asn1 encoding routines: wrong tag 해결 다른 기관에서 받은 인증서를 등록해 줄 일이 생겼다. const https = require('https'); const fs = require('fs'); const options = { key: fs.readFileSync('인증서경로/sslcert.co.kr_xxxxx.key.pem'), (개인키 지정) cert: fs.readFileSync('인증서경로/sslcert.co.kr_xxxxx.crt.pem'), (서버인증서 지정) ca: fs.readFileSync('인증서경로/ca-chain-bundle.pem'), (루트체인 지정) minVersion: "TLSv1.2" (서버 환경에 따라 선택적 적용) }; https.createServer(options, (req, res) => { res.w.. 2022. 6. 23.
you do not have the SUPER privilege 에러 처리 Mysql Trigger를 설정하다가 다음과 같은 오류가 발생했다. You do not have the SUPER privilege and binary loggin is enabled(you might want to use the less afe log_bin_trust_function_creators variable) 이는 해당 계정이 trigger 권한이 있더라도 해당 설정에 따라 트리거를 생성하지 못하도록 처리가 되어 나타난다고 한다. 이럴 때는 mysql을 root 계정으로 접근하여 아래와 같이 입력하면 된다. set global log_bin_trust_function_creators=on; 이렇게 하면 트리거 생성이 가능하게 되고, 다시 되돌릴 때는 다시 off로 설정해주면 된다. 2022. 6. 13.
실용주의 프로그래머 Mission3(22.04.04) 실용주의 프로그래머 Mission 3 요구사항을 받았는데, 요구사항이 아닐 수 있습니다! 요구사항이 아니라면 사용자가 진짜로 원하는게 무엇인지 알아내야합니다. 애매한 요구사항에서 진짜 요구사항을 찾아내는 연습을 해봅시다. (1) '연습문제 #33'을읽습니다. (2) 1-5번까지 문제를 클라이언트가 건넨 요구사항이라 상상하며 문제를 풀어봅시다. (3) 진정한 요구사항이 아닐 경우 어떻게 질문을 해야하는지, 무엇을 알아야 하는지, 왜 그렇게 생각하는지 등 나의 생각을 작성해보세요. ❗️ 풀이과정은 문제당 300자 이상으로 작성해주세요. ❗️ 책에 있는 해답은 참고용이며, 본인의 생각을 잘 작성해주세요. 📌 연습문제 33 다음 문장들이 진정한 요구 사항인가? 가능하다면 진정한 요구사항이 아닌 것을 좀 더 유용.. 2022. 4. 4.
실용주의 프로그래머 TIL(22.04.03) 오늘의 책 읽기 8장 프로젝트 전에 오늘의 TIL - 적극적으로 자기 코드에 대해 생각하지 않는 프로그래머는 우연에 맡기는 프로그래밍을 하는 것이다. - 실용주의 프로그래머는 우리가 만든 프로그램과 설계에서 언제나 개선할 여지를 찾아낸다. - 프로토타이핑을 통해, 꺼림칙했던 느낌이 갑자기 명확한 문제로 구체화한다. 그럼 불안감은 사라지고 빨리 해치우고 싶다는 느낌이 자리하게 될 것이다. - 코드를 마구 찍어내는 시간을 줄이고, 초기에 오류를 잡고, 애초에 오류를 더 적게 만들기 위해서는 의도적으로 프로그래밍을 해야한다. - 더 경험이 적은 프로그래머에게 코드를 상세히 설명할 수 없다면, 아마 우연에 기대어 코딩을 하고 있을 것이다. - 자신도 잘 모르는 코드를 만들지 말자. 이것이 왜 동작하는지 잘 모른.. 2022. 4. 4.
실용주의 프로그래머 TIL(22.04.02) 오늘의 책 읽기 7장 코딩하는 동안 오늘의 TIL - 적극적으로 자기 코드에 대해 생각하지 않는 프로그래머는 우연에 맡기는 프로그래밍을 하는 것이다. - 실용주의 프로그래머는 우리가 만든 프로그램과 설계에서 언제나 개선할 여지를 찾아낸다. - 프로토타이핑을 통해, 꺼림칙했던 느낌이 갑자기 명확한 문제로 구체화한다. 그럼 불안감은 사라지고 빨리 해치우고 싶다는 느낌이 자리하게 될 것이다. - 코드를 마구 찍어내는 시간을 줄이고, 초기에 오류를 잡고, 애초에 오류를 더 적게 만들기 위해서는 의도적으로 프로그래밍을 해야한다. - 더 경험이 적은 프로그래머에게 코드를 상세히 설명할 수 없다면, 아마 우연에 기대어 코딩을 하고 있을 것이다ㅏ. - 자신도 잘 모르는 코드를 만들지 말자. 이것이 왜 동작하는지 잘 모.. 2022. 4. 3.
실용주의 프로그래머 TIL(22.03.30) 오늘의 책 읽기 6장 동시성 오늘의 TIL 소프트웨어 아키텍처에서 시간이라는 측면이 자주 무시되는데, 동시성(동시에 일어나는 일들)과 순서(시간의 흐름 속에 일들의 상대적인 위치)다. 보통 설계를 할 때, 'A를 하고 B를 하고 ~' 등등과 같이 명령형으로 코드를 설계하게 된다. 하지만 이런 식으로 생각하다보면 시간적 결합을 만들게 된다. 동시성을 확보하기 위해서는 시간이나 순서에 의존하는 시간적 결합을 끊어내야 하고, 이를 통해 유연성, 작업흐름분석, 아키텍처, 설계, 배포와 같은 여러 측면에서 시간과 관련된 의존성도 줄일 수 있다. 우리는 활동다이어그램을 통해 작업 흐름을 기록할 수 있다. 다이어그램에서 동기화 막대를 만들어, 동기화 막대로 들어오는 활동이 모두 완료된 후에야 진행할 수 있도록 만들 .. 2022. 3. 30.
실용주의 프로그래머 TIL(22.03.28) 오늘의 책 읽기 연습문제 풀고 복습하기 오늘의 TIL 연습 문제 23 "x 언어에는 파이프라인이 없는데요"에서 우리는 다음과 같은 코드를 썼다. 아래 가지 코드의 차이는 무엇인가? 여러분이 보기에 우리는 어느 쪽을 선호할 것 같은가? const content = File.read(file_name); const lines = find_matching_lines(content, pattern); const result = truncate_lines(lines); const result = content_of(file_name) .find_matching_lines(pattern) .truncate_lines(); 해설 const content = File.read(file_name); const no_co.. 2022. 3. 28.
aws ufw enable 접속 불가 (볼륨 분리) aws ufw enable 접속 불가 해결하기 새로운 서버에 mysql-server를 깔고 방화벽을 설정하다가 ufw enable을 해버려서 더 이상 ssh접근이 불가하게 되었다. 개발 중이던 코드가 들어있기 때문에 차마 날려버릴 수가 없었음.. 그래서 여기를 참고하여 잘 해결해보았다. https://gksdudrb922.tistory.com/202 [AWS] EC2, ufw enable 후 ssh 접속 불가 문제 Ubuntu는 기본 방화벽으로 ufw를 사용한다. 이 때, ufw를 disable 했다가 enable 했을 때, ssh 접속이 다시 되지 않는 경우가 있다. 사실 무시하고 넘어갔겠지만 ufw를 enable 할 때, ssh 접속이 끊어질 수 있 gksdudrb922.tistory.com 진행방법.. 2022. 3. 28.
실용주의 프로그래머 TIL(22.03.26) 오늘의 책 읽기 5장. 구부러지거나 부러지거나 오늘의 TIL 결합도 줄이기 되돌릴 수 있는 의사 결정을 통해, 불확실한 세상에서도 유연성과 적응력을 잃지 않을 수 있다. 우리가 어떤 것 하나만을 골라내려고 해도, 그것이 우주의 다른 모든 것과 얽혀 있음을 깨닫게 된다. 이벤트에 잘 반응하는 어플리케이션을 만들기 위한 전략 유한 상태 기계(FSM) 감시자(Observer)패턴 게시-구독 반응형 프로그래밍과 스트림 옵저버 패턴은 모든 감시자가 감시 대상에 등록을 해야 하기 때문에 결합이 생긴다. 감시 대상이 콜백을 직접 호출하도록 구현하기 때문에 성능 병목이 될 수 있다. 이러한 문제는 "게시-구독" 전략으로 해결한다. 외부 설정으로 애플리케이션을 조정할 수 있게 하라 외부설정을 사용하지 않는다면 코든느 적.. 2022. 3. 27.
실용주의 프로그래머 TIL(22.03.24) DAY5 (2022. 03. 24) 오늘의 책 읽기 4장. 실용주의 편집증 오늘의 TIL DBC 구현 코드를 작성하기 전에 유효한 입력 범위가 무엇인지, 경계 조건이 무엇인지, 루틴이 뭘 전달한다고 약속하는지등을 나열하는 것만으로도 엄청난 도움이 된다. 오류 발생시 소비자의 입장을 우선하라. 이것은 시스템의 여러 다른 부분을 적용할 수 있는 분명하고 간력하며 명확한 선언이다. 이는 모든 시스템 사용자와 맺는 계약이며 동작에 대한 우리의 보증이다. 방어적 프로그래밍은 시간낭비다. 그냥 멈추는 게 낫다! 기본 원칙은 방금 있을 수 없는 에러가 발생했다는 것을 코드가 발견했다면 프로그램은 더 이상 유효하지 않다. 이 시점 이후로 하는 일은 모두 수상쩍게 된다. 죽은 프로그램이 끼치는 피해는 이상한 프로그램이 .. 2022. 3. 25.
실용주의 프로그래머 TIL(22.03.21) DAY3 (2022. 03. 21) 오늘의 책 읽기 2장.실용주의 접근법 오늘의 TIL ETC (Easier to Change) 잘 설계된 코드는 ETC하고, 잘 설계된 코드는 결합도가 줄어 단일 책임 원칙(Single responsibilty principle)에 유용 네이밍을 잘해야 코드가 읽기 쉬워지고 수정에 용이 ETC는 규칙이 아니라 가치(Value)로 결정을 내리게 도움을 줌. 방금 한 일이 전체 시스템을 바꾸기 쉽게 만들었는지를 고민해야 한다. 저장할 때마다, 테스트를 쓸 때도, 버그를 수정할 때도. DRY (Don't Repeat Yourself) DRY하게 코드를 짜야한다는 것은 자주 들어왔던 이야기이다. 단순하게 반복을 지양해야 하는 것이 아니라, 구현 내용상의 무의미한 반복을 지양해야.. 2022. 3. 21.