SQLD 합격 후기 - 제59회(2024년11월16일)
·
자격증
24년 마지막 SQLD 시험 합격 후기를 기록하겠다. 1. 이거 왜 땀?자격증을 따고 싶었다. 불안했기 때문이다. 뭐라도 해야겠어서 이것저것 하기는 했는데, 공부한 게 티가 안 났다.공부라는 게 잠깐 한다고 해서 티가 나고 그런 게 아니라는 것을 알고는 있었지만, 나는 성취감이 느끼고 싶었다. 그래서 결과가 확실하게 남는 무언가를 하고 싶었고, 그게 자격증 취득이었다. 자격증도 종류가 참 많았는데, 당장 실무와 연관성이 있는 것을 찾다 보니 선택하게 된 것이 SQLD였다. 2. 도움이 되었나?사실 이 자격증을 따기 전에 했던 고민 중에 가장 큰 고민은 이거 따면 뭐가 좋은 거지 같은 생각이었다.기껏 시간들이고 돈 들여서 땄는데 쓸모없으면 그것만큼 허탈한 게 어디 있을까? 사실 그렇게 따기 힘든 자격증이..
[Java] Math.random()의 취약성과 시큐어 코딩
·
JAVA
현재 진행 중인 프로젝트에서 `Sparrow`를 사용해 웹 취약점 진단을 실시했다.Math.random() 사용이 지적을 받았다. 왜 Math.random()이 보안에 취약한지 정리해 보자. 1.Math.random()1.1 Math.random()의 정의`Math.random()`은 `java.lang.Math` 클래스의 정적(static) 메서드로, `0.0 이상 1.0 미만`의 범위에서 균등하게 분포된 난수를 생성하여 반환한다. 1.2 Math.random()의 특징1) 반환 타입 : `double`2) 특징 : 생성되는 값은 `균등 분포(uniform distribution)`를 따르기 때문에 모든 값이 동일한 확률로 생성된다. 1.3 예제(주사위 게임)코딩을 처음 배울 때 배웠을만한 주사위 게임..
[시큐어 코딩]innerHTML의 취약성과 XSS 공격 - 자바스크립트(Java Script)
·
JavaScript
현재 진행 중인 프로젝트에서 `Sparrow`를 사용해 웹 취약점 진단을 실시했고, `innerHTML`을 사용한 코드들이 다량 발견되어 수정 조치했다. 단순히 코드를 고치는 것에서 더 나아가 같은 실수를 반복하지 않기 위해 왜 고쳐야 했는지를 기록해보도록 하겠다. 1.innerHTML1.1 innerHTML 이란MDN에서는 `innerHTML`을 이렇게 정의한다.`Element.innerHTML`Element속성(property) `innerHTML`은 요소(element) 내에 포함된 HTML 또는 XML 마크업을 가져오거나 설정합니다. 잘 와닿지 않는다. 예시로 만든 코드를 보도록 하자.텍스트를 이용해 동적으로 테이블을 생성하는 코드이다. 1.2 innerHTML 예시 코드 (텍스트를 사용해 동적 ..
[Spring Boot 사이드 프로젝트] 5. 로또명당 프로젝트 회고
·
사이드 프로젝트/로또명당
사이드 프로젝트를 마무리하며 정리하기로 했다.짧은 기간이었지만 배운 것과 느낀 것이 참 많았다.1.프로젝트 소개 번호 생성하기를 누르면 로또 5게임의 랜덤한 번호를 생성해준다.여기까지는 코딩을 처음배울 때 많이 만드는 부분이라 뭘 더해야 특별할까해서 몇가지 기능을 추가했다.  이러한 통계기능인데, 추출기로 생성한 번호를 실제 당첨 번호와 비교해서 추출기의 당첨확률이 얼마나 되는지 통계를 만들어주는 기능이다. 이 기능을 만들다 테스트로 만든 계정에서 2등 번호가 나왔다. 이 번호를 샀어야 했는데... 이 기능을 위해 스프링 부트의 `@Scheduler`과 `jsoup`라이브러리를 사용했다. 매주 로또 당첨 번호가 공개되면 자동으로 그 번호를 크롤링해 DB에 넣어준다.그리고 이번주에 생성된 번호와 비교해 당..
[Java] replaceAll() - 자바 특정 문자 변경 함수
·
JAVA
replaceAll() 문법String newStr = originStr.replaceAll(String regex, String replacement);`regex` : 변경하고 싶은 문자열에 해당하는 정규 표현식(혹은 그냥 문자열)을 넣어주면 된다.`replacement` : 대체할 문자열을 입력하면 된다. `originStr` 문자열에서 `regex`와 일치하는 부분을 모두 `replacement`로 바꿔준다.replaceAll() 예시public class ReplaceAllExample{ public static void main(String[] args){ String str = "나랑드 사이다 우리는 이제 그런 사이다"; str = str.replaceAll("사이다", ..
초간단 키보드 방향키를 누르면 움직이는 요소 구현하기 - 자바스크립트(Java Script)
·
JavaScript
키보드를 이용해 간단한 게임을 만들어보고 싶다는 생각이 들었다.그전에 `KeyboardEvent.key`를 활용해 간단한 예제를 구현해 봤다.코드 실행 See the Pen Untitled by Wi daehyeon (@widaehyeon) on CodePen.  HTML 코드 🧍‍♂️ 방향키를 입력해보세요! CSS 코드body { display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background-color: #f0f0f0;}.container { text-align: center;}.box { width: 300..
초간단 마우스를 따라 다니는 요소 구현하기 - 자바스크립트(Java Script)
·
JavaScript
언젠가 누군가의 티스토리에 들어갔는데 마우스를 움직일 때마다 뭔가가 마우스를 따라 온다거나, 꽃가루 같은 것을 뿌리는 것을 경험한 적이 있다.그걸 구현하고 싶었다.코드 실행 See the Pen Monkey Follow by Wi daehyeon (@widaehyeon) on CodePen.HTML 코드 🐒 CSS 코드body { display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background-color: #f0f0f0;}.container { text-align: center;}.box { width: 300px; h..
버튼을 클릭하면 요소가 생성되어 떨어지는 기능 구현 - 자바스크립트(Java Script)
·
JavaScript
코드 실행 See the Pen money rain by Wi daehyeon (@widaehyeon) on CodePen.HTML 코드 생성 초기화  CSS 코드body { display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background-color: #f0f0f0;}.container { text-align: center;}.box { width: 300px; height: 300px; background-color: white; border: 2px solid #333; positi..
마우스를 피해 움직이는 요소 구현하기 - 자바스크립트(Java Script)
·
JavaScript
코드 예시  See the Pen love is always run by Wi daehyeon (@widaehyeon) on CodePen.CSS 코드body { display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background-color: #f0f0f0;}.container { text-align: center;}.box { width: 300px; height: 300px; background-color: white; border: 2px solid #333; position: relative; overflow: hi..
그레이트현
그레이트현