전체 글

Unit Test ? 단위 테스트는 Service Layer의 비즈니스 로직만을 검증하는 것이므로, Repository와 Controller의 영향을 받지 않는 환경에서 테스트를 진행하여야 한다. 테스트의 F.I.R.S.T 원칙 F - Fast: 테스트를 시도하는 것에 있어서 주춤되지 않을 만큼 빨라야 한다. I - Independent: 객체의 상태, 메소드, 이전 테스트 상태, 다른 메소드의 결과에 의존해서는 안된다. R - Repeatable: 어떤 환경에서도 같은 결과가 나올 수 있도록 반복 가능해야 한다. S - Self-Validating: 모든 테스트는 pass 혹은 fail의 결과만 가지고 있어야 한다. T - Timely: 실제 코드가 만들어지기 전에 테스트 되어야 한다. 실제 코드를 구..
문제 (GOLD 2) https://www.acmicpc.net/problem/18500 18500번: 미네랄 2 창영과 상근은 한 동굴을 놓고 소유권을 주장하고 있다. 두 사람은 막대기를 서로에게 던지는 방법을 이용해 누구의 소유인지를 결정하기로 했다. 싸움은 동굴에서 벌어진다. 동굴에는 미네랄 www.acmicpc.net 풀이 시뮬레이션은 문제를 천천히 보면서 하나하나 구현하는게 가장 중요한 것 같다. Logic 높이 입력 받기 던지는 위치에 따라 분기 없어질 미네랄 위치 찾기 없어질 미네랄을 중심으로 오른쪽 공격이면 상, 하, 좌 왼쪽 공격이면 상, 하, 우 탐색하며, 떨어질 클러스터가 있는지 확인 ( breakMineral() ) BFS 돌며, 바닥과 맞닿아 있는 곳이 있는지 확인 있으면 fals..
[ 문제 ] 타이머를 적용하는 setInterval이 간헐적으로 실행되지 않음 새로운 window를 열었을 때, background.js가 재 실행되면서, tabId가 “”로 초기화 됨 setInterval Manifest V3로 이전 되면서, chrome alarms API로 변경 https://developer.chrome.com/docs/extensions/mv3/migrating_to_service_workers/#alarms chrome.alarms.create({ when:Date.now(), periodInMinutes: 1/60}); chrome.alarms.onAlarm.addListener(() => { // Do Action }); alarms 사용을 위해, Manifest에 Perm..
[ localStorage에서 데이터 얻기 ] 필요한 데이터를 이미 웹 페이지에서 localStorage에 저장하고 있었음! → localStorage 내용 얻어오기 1. 데이터 가져올 Tab의 ID 얻기 chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab)=>{ if(changeInfo.status === 'complete'){ if(tab.url.includes("URL주소"){ globalTabId = tabId; } } }); 사용자가 미리 지정된 URL에 접속할 경우, 해당 탭의 ID를 저장 해당 프로젝트에서는 탭의 상태를 유지해야 하기 때문에 전역변수로 저장 후 활용 2. localStorage 가져올 Script 주입 chrome.scrip..
[ manifest.json ] 사용자의 Tab 정보를 활용하여 화면을 제어하기 때문에, permissions을 추가 /* manifest.json */ ... "permissions": [ "...", "tabs", "scripting" ], "host_permissions":[ /* 특정 URL에 script 주입을 위한 권한 */ "http://*/", "https://*/" ], ... [ Background JS ] 다양한 브라우저 event들을 monitoring하여 작업을 수행하는 코드를 작성한다 탭 URL 변경 감지 chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab)=>{ if(changeInfo.status === 'complete')..
Chrome Extension 만들기 - 1 💡 Chrome Storage를 활용한 Extension의 CRUD [ 환경 ] [FE] HTML / CSS [BE] Javascript / JQuery [DB] Chrome Storage Chrome Extension ( MV3 ) [ manifest.json ] Chrome Extension의 뼈대같은 존재인 manifest.json 작성! manifest만 작성해도 Chrome Extension에 올려 앱을 확인할 수 있다. { "name": "Docong", "description": "Docong Extension", "version": "1.0", "manifest_version": 3", "action": { "default_popup": "pop..
점이
DOTELOPER