-
깃허브 블로그? TOP NEW
저도 배너가 띄우고 싶다고요 . . . 왜 안보여요 . . . 개발 블로그!? 인트로 ssafy에 들어온지도 꽤 오랜 시간이 지났다. 비전공 문과생에서 출발해 아주 조금은 코드를 작성하고 있지만 늘 배운 내용을 TIL 이라는 이름의 혼란한 장소에 저장만 하다보니 필요할 때 찾으면 정말 발견되는 경우가 없었다. 정말 많은 것을 배운 것 같다는 생각을 하지만 열심히 공부했던 기록들이 이대로면 의미없는 정보가 될 것 같기에 공부했던 내용과 앞으로 공부할 내용을 옮겨 적고, 나 뿐만 아니라 다른사람들도 도움이 되면 하는 마음으로 블로그를 해보려고 한다. 그래서 여러 블로그를 고민해봤지만 FE ... Read More
-
[JS 시리즈 1편] 간단 스크립트에서 웹까지, JavaScript의 역사 TOP NEW
본 시리즈는 총 2부로 이루어집니다. 들어가며 JavaScript는 단순한 프론트엔드 언어를 넘어, Node, Deno, Bun 과 같은 런타임 까지 아우르며, 다양한 환경에서 사용되는 전 세계 SW 소프트웨어 산업의 큰 부분이 되었습니다. 출처 : Stackoverflow Developer Survey 하지만 지금 우리가 브라우저, Node.js, Deno, Bun 등에서 실행하는 코드 대부분은 법적으로 Oracle의 상표 (JavaScript™) 아래 놓여있습니다. JavaScript가 적혀있다는 이유로 앱이 내려간 적도 있다고 하네요. (8년 전) 본 시리즈 1부에서는 상표권과... Read More
-
[Rust] 백준 1047 - 울타리 (N^4 브루트포스 + 그리디) TOP NEW
백준 1047 - 울타리 문제 문제 접근: 울타리의 네 모서리 찍기 근데 하나하나 다 찍어보기. 이 문제의 핵심은 “최소 몇 그루를 베어야” 울타리를 만들 수 있는지 찾는 것. 나무를 베면 재료가 생기고, 남아있는 나무들은 더 작은 직사각형을 만든다. 여기서 약간의 주의점이 있는데 단순히 재료가 긴 나무를 베는 그리디만 써서는 안됨. 직사각형의 크기 자체의 감소 + 적절한 나무를 자르는 전략이 필요. 하지만 하나하나 다 생각하기엔 머리아픔. N = 40 이므로 다 자르자. N^4 정도라면 가능하지 않을까? (4중 for 문) 그래도 혹시 불안해서 노드가 아닌 rust로 했다는건 비밀 따라... Read More
-
[Node.js] [Rust] 백준 24460 - 특별상이라도 받고 싶어 TOP NEW
[Node.js & Rust] 백준 24460 - 특별상이라도 받고 싶어 문제 아. 재귀의 세상. 또 와버렸다. 접근 문제의 규칙이 중요하다. 이 문제의 규칙은 곧 이 문제를 풀기 위한 알고리즘 그 자체라는 사실! 종료 조건 : 영역의 크기가 1 * 1 이라면, 그 칸의 추첨 번호로 당첨 재귀 조건 : N * N 이면 같은 크기의 정사각형 네 개로 나눈다 결합 : 네 구역에서 재귀적으로 뽑힌 네 명의 추첨 번호 중 두 번쨰로 작은 값을 최정 결과로 선택한다. 아. 써있는 그대로 구현하면 되겠다! 라는 방식으로 접근했다. 따라서 구현부는 다음과 같이 나누어진다. 입력과 ... Read More
-
[Node.js] 백준 7576 - 탑 보기 TOP NEW
[Node.js] 백준 7576 - 토마토 창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토들도 있을 수 있다. 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 토마토의 영향을 받아 익게 된다. 하나의 토마토의 인접한 곳은 왼쪽, 오른쪽, 앞, 뒤 네 방향에 있는 토마토를 의미한다. 대각선 방향에 있는 토마토들에게는 영향을 주지 못하며, 토마토가 혼자 저절로 익는 경우는 없다고 가정한다. 철수는 창고에 보관된 토마토들이 며칠이 지나면 다 익게 되는지, 그 최소 일수를 알고 싶어 한다. 토마토를 창고에 보관하는 격자모양의 상자들의 크기와 익은 토마... Read More
-
[TIL-250917] Python 다시하기 TOP NEW
Python 까먹기 전에 다시. 이런저런 코테 준비 겸, F1과 각종 데이터들에 대해서 조금 경량으로 구현하는 방법은 뭐가 있을까 해서 무리없이 접근 할 수 있을 것 같은 파이썬을 다시 공부하기로 했다. 이번에 도움을 줄 책은 예~전에 사두었던 “자료구조와 함께 배우는 알고리즘 입문” 싸피에서 배웠던 익숙한 내용들과, 해당 내용을 다시 한 번 배우는 느낌으로 차근차근 접근해보려고 한다. 아마 파이썬으로 알고리즘을 풀고 나서, 추후에 같은 문제를 여러가지 언어로 풀어보는 것 또한 하나의 알고리즘 학습이 될 수 있다는 생각이 들어서 바로 트라이 트라이! 아무래도 개인 학습 정리의 성격이 강한 게시물이 될 것 ... Read More
-
댓글을 바꿔보자 TOP NEW
한 줄 요약 되긴 하는데 당장 배포해놓을 방법이 없음. 첫 Rust 프로젝트 - 대충 API 댓글 서버 만들기 진짜로 그러고 싶어요? 네. 진짜로 하고싶어서 해봤음. Rust는 처음이라 cargo new로 프로젝트를 만들었는데 프로젝트 시작하기 cargo new %이름% 와~! 쉽다. 여기까지는 얼마나 어려울지 몰랐지… toml? cargo.toml이라는 파일인데 npm의 package.json 같은 느낌? 프로젝트의 이름 버전 그리고 어떤 라이브러리 (crate 라고 부른다 한다.)를 쓸 건지 여기에 작성한다. 대충 이런 느낌 [package] name = "comment-api"... Read More
-
페이지네이션으로 바꿔보자 TOP NEW
그냥 페이지에 엄청나게 많은 글이 쏟아진다! Jekyll 블로그를 사용중인데, 글이 많아지는 한편 글이 늘어나는게 싫어서 작성을 아예 안하던것이 생각났다. 하지만 이대로 방치하거나, 외부 사이트로 도망치는건 내 영… 별로니까! 이번 기회에 페이지네이션을 추가했다. 문제 발생 지킬 깃헙 아니 분명 별거 없는 것 처럼 되어있었지만. 작동하지 않는게 아닌가! 시키는대로 잘 _config.yml에 paginate 와 같은 필요한 요소를 잘 넣었지만… 메인 페이지는 여전히 모든 게시물을 보여주고 있고, page2는 레이아웃도 제대로 적용되어있지 않았던 것! Jekyll의 경우 index.markdown 혹은... Read More
-
SQLD 파트 1 TOP NEW
SQL 개발자 자격증 준비 데이터 모델 모델링 현실 세계를 대상으로 일종의 모델을 만드는 것. 즉 현실 세계의 사물 Or 개념을 약속된 방법을 통해 도식화. 모델링의 이유 : 명세화 -> 설계 개발 시스템 관리 등에 사용하기 위함 그렇다고 막 하는건 아니고, 추상화 해서. 따라서 데이터베이스를 설계하는 것도 하나의 모델링 하는 과정이라고 볼 수 있다. 모델링의 특징 시스템에 맞게 현실세계를 표현 추상화 대상의 주요 특징 추출 후 일정한 형식으로 표현. 대상을 범주화하여 클래스로 구분, 공통 특징을 기반으로 서술하는 객체지향에서의 추상화와 같은 의미가 될 수도 있... Read More
-
[Java] 백준 1987 - 알파벳 TOP NEW
백준 1987 - 알파벳 문제 접근 이미 방문한 알파벳을 기억하자. 경로가 막히면 되돌아가자. 추가적으로 R과 C의 크기는 최대 20. 재귀로 풀어도 문제가 없겠다! 코드 구현 전역 변수 및 초기화 static int R, C; static char[][] letterArr; static int[] dr = { -1, 1, 0, 0 }; // 상, 하, 좌, 우 이동 static int[] dc = { 0, 0, -1, 1 }; static int ans; // 정답(최대 이동 칸 수)을 저장할 변수 main 함수 public static void main(String[... Read More
-
솔리디티 테스트 코드 2 TOP NEW
1편 요약 Hardhat + Chai 이벤트 검증 근데 문제가 많은… 난이도 상승의 주범 : Escrow의 고급 기능 1. 서명 테스트 ERC20 Permit 문제점: 기존 ERC-20 토큰을 컨트랙트로 보내려면 approve -> transferFrom이라는 2단계 트랜잭션이 필요해 유저 경험이 불편하고 가스비가 두 번 발생 해결책: ERC20 Permit(EIP-2612)을 도입하여, 유저가 오프체인 서명 한 번으로 approve와 transferFrom을 한 번에 처리 테스트 방식 유효성 검증: getPermitSignature 유틸리티 함수를 사용해 올바른 서명을 생성... Read More