전체 글 11

코드 블럭까지 번역하라고는 안 했잖아

구글링을 할 때 외국 사이트를 많이 참고하는데, 구글 번역을 돌리면 코드 블럭까지 번역되어 깨지는 현상이 일어났다. 자바스크립트 코드를 북마크로 저장하여 간편하게 코드블럭 번역 제외하는 법을 알아보자. 크롬 코드블럭 번역 제외하기 1. 아무 사이트의 북마크나 만든 후 수정에 들어간다.2. 아래 내용을 입력한다.이름 : notranslate폴더 : bookmark barURL :javascript:(function(){ document.querySelectorAll('pre,code').forEach(function(e){ e.classList.add('notranslate'); })})(); 3. 번역하고자 하는 외국 페이지에서 방금 만든 북마크 클릭 후, 마우스 우클릭으로 구글 번역 실행4. ..

Settings 2024.07.09

[인프런 워밍업클럽] BE 1주차 발자국

첫 걸음인프런 워밍업 클럽 1기 BE에서 자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지] 강의를 수강하며 작성하였다.강의 학습HTTP와 APIHTTP란 다른 컴퓨터로 데이터를 보내기 위한 데이터 표준이다.API는 정해진 약속에 따라 특정 기능을 수행하는 코드이다. HTTP Method 중 하나인 GET은 쿼리를 통해 정보를 보낸 후 데이터를 요청한다.→ /add?number1=10&number2=20 Controller는 API가 실행되는 입구와 같다.@GetMapping("/add")public int addTwoNumbers(@RequestParam int number1, @RequestParam int number2) { return ..

[Elice Cloud Track] 쇼핑몰 프로젝트를 마치며

학교와 자격증 등등 바쁜 현생이 계속되고 부트캠프가 지쳐 갈 무렵, 팀 프로젝트가 시작되었다.엘리스트랙에서 이제까지 진행했던 작은 프로젝트들과는 다르게 제대로 된 '팀 백엔드 프로젝트'였다.팀을 구성하고 주제를 정하려는데 사다리 타기 팀장이 되었다. 갑자기 책임감이 생겼다.팀원분들도 열정이 넘쳐 보여 나는 이번 한 번만 더 힘내 보기로 했다. 온라인 1인 가구 식료품 쇼핑몰 : SingleShop식료품을 대량으로 구매하기 어려운 1인 가구를 대상으로, 1인분에 맞는 식품을 판매하는 쇼핑몰 웹 사이트를 제작하였다.로그인 및 회원가입, 카테고리, 주문, 상품, 장바구니로 나누어 개발을 진행하였다.내가 맡은 부분은 '상품' 코드이다. JDK, Spring Boot, MySQL을 이용해 개발하였다.  협업 방식..

Mac Brew에서 JDK 버전 관리를 해 보자 (Temurin)

새로운 강의 수강을 준비하며 환경설정을 하고 있었는데, 그 동안 마구잡이로 깔아둔 JDK들이 종류도 버전도 뒤죽박죽이었다.이 기회에 깔끔하게 통일하여 설치하고, 이후 버전 관리도 쉽게 할 수 있는 방법을 찾아보았다.  Mac을 사용하게 되면서 공식 홈페이지에 들어가 다운로드 파일을 받는 것보다 터미널을 이용해 프로그램을 설치하거나, 버전을 관리하는 일이 많아졌다.Brew를 이용하면 명령어 한 줄로 프로그램 설치가 가능하기 때문이다. 기존에 Brew를 통해 JDK를 설치하기 위해서는 AdoptOpenJDK이 사용되었지만 지원이 종료되었다.그 대신, Temurin을 사용하여 JDK를 설치하고 버전 관리를 해보려고 한다.  JDK 설치먼저, AdoptOpenJDK를 사용 중이었다면 기존 저장소를 삭제한다.br..

Settings 2024.04.27

[BOJ 1253] '좋은' 투 포인터

백준 1253. ‘좋은 수’ 구하기 (시간 제한 2초) 주어진 N개의 수 중에서 다른 두 수의 합으로 표현되는 수가 있다면 그 수를 ‘좋은 수’라고 한다. N개의 수 중 좋은 수는 총 몇 개인지 출력하시오. 1번째 줄에는 수의 개수 N(1 ≤ N ≤ 2,000), 2번째 줄에는 N개의 수의 값(Ai)이 주어진다. (|Ai| ≤ 1,000,000,000, Ai는 정수) // 예제 입력 10 1 2 3 4 5 6 7 8 9 10 // 예제 출력 8 시간 복잡도 for문으로 배열을 모두 돌며 ‘좋은 수’를 모두 찾으려면 O(n)의 시간 복잡도가 필요하다. ‘좋은 수’ 하나를 찾는 알고리즘의 시간 복잡도는 O(n^2)보다 작아야 한다. 만약 O(n^2)보다 크다..

[BOJ 11659] 구간 합 구하기

구간 합이란 시간복잡도를 줄이기 위해 합 배열을 미리 생성하는 알고리즘이다.기존 배결의 특정 범위의 합을 구하는 시간 복잡도는 O(N)이지만, 합 배열을 미리 구해 놓으면 시간 복잡도가 O(1)이 된다.합 배열의 기본 공식은 S[i] = S[i - 1] + A[i]이다.i에서 j까지의 구간 합 또한 S[j] - S[i - 1]로 나타낼 수 있다. 백준 11659. 구간 합 구하기 4(시간 제한 0.5초) 수 N개가 주어졌을 때, i번째 수에서 j번째 수의 합을 구하는 프로그램 첫째 줄에 수의 개수 N(1 ≤ N ≤ 100,000)과 합을 구해야 하는 횟수 M(1 ≤ M ≤ 100,000)이 주어진다.둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다.셋째 줄부터 M개의 줄에는 ..

Big-O 표기법 활용하기

알고리즘 과목을 처음 배워도, 코딩테스트를 처음 시작하려고 해도 꼭 나오는 개념이 있다.바로 시간 복잡도를 표현할 수 있는 Big-O 표기법이다.문제만 풀 줄 알면 됐지 하고 넘어간다면, 시간 초과 오류와 마주칠지도 모르겠다. 이론은 이해하겠는데, 대체 코딩테스트 문제를 풀 때 어떻게 활용하라는 거야?   시간 복잡도란? 알고리즘의 연산 횟수, 즉 성능을 수학적으로 표현해주는 표기법이다.일반적으로 1초에 1억 번의 연산을 수행한다고 가정한다.Big-O 시간 복잡도는 항상 최악일 때, 즉 데이터의 크기가 가장 클 때를 기준으로 한다.(Big-Ω는 최선일 때, Big-Θ는 보통일 때를 나타낸다.) 실제 러닝타임보다는 알고리즘의 성능을 예측하는 것이 목표이기 때문에 상수는 고려하지 않는다.반복문이 여러 개 있..

개발 블로그를 다시 시작한 이유

그동안 여러 플랫폼에서 여러 블로그를 만들었지만, 제대로 꾸준히 활용하지는 못 했다. 어떤 글을 적어야 하는지도 잘 모르겠고, GitHub Pages같은 경우 마크다운으로 글 쓰기, 사진 넣기 등이 귀찮아 몇번 쓰고 말아버렸다. 새로운 블로그를 만들었으니, 동기부여하기 위해 개발 블로그를 하면 좋은 점과 무엇을 적어야 하는지에 대해 조사해보았다. 강의를 들었는데 머릿속에 남는 게 없는 이유 단순히 강의를 듣고 코드를 따라 치는 것은 비효율적인 공부법이라고 한다. 고민하고 생각하는 시간이 적어 뇌에 자극이 가지 않으니 기억에도 남지 않고, 심지어 모두 이해했다는 착각을 불러일으키기도 한다. 강의를 다 들었는데, 막상 혼자 개발하려고 하면 스스로 구현하지 못하는 경우가 대부분이다. 그렇다면, 어떻게 공부해야..

BufferedReader 꼭 써야 해?

그냥 Scanner 사용하면 안 돼? JAVA를 배울 때 입력 함수로 가장 먼저 배우는 Scanner에 너무 익숙해져서 코딩테스트 문제를 풀 때도 자연스럽게 사용해 왔다. 그런데 인터넷의 문제 답안 코드에서도, 또 주변에서도 코딩테스트 문제를 풀 때는 대부분 Scanner 대신 BufferedReader를 쓰는 것을 볼 수 있었다. BufferedReader가 뭔데? 그렇게 좋은 거야? Scanner // Scanner의 기본 문법 Scanner scanner = new Scanner(System.in); int a = scanner.nextInt(); Scanner는 문자열에 최적화된 클래스가 아니다. 그에 비해 BufferedReader, StringTokenizer는 문자열 입력에 최적화되어 있어 ..

부트캠프 지원 후기를 모아보자

부트캠프를 지원하는 것만큼 마음 편하게 자기소개서, 코딩테스트, 면접 등의 취업 과정을 체험해볼 수 있는 좋은 기회가 없는 것 같다.하지만 부트캠프를 수강하고 있는 지금, 개인이 얼마나 열심히 하느냐에 따라 천차만별이겠지만 나와는 잘 맞지 않다고 느꼈다.블로그에 그동안 지원했던 부트캠프에 대한 후기를 작성하며 그 이유에 대해 생각해보려고 한다.  [TECH!T] 백엔드 스쿨 7기  자기소개서를 제출한 후 TECH!T 백엔드 스쿨 7기 최종 합격 여부가 공지되었다.선발 과정이 자기소개서 뿐이라 솔직히 기대는 하지 않았는데 결과는 합격이었다. 그러나 백엔드 스쿨은 평일 매 9시부터 6시까지 진행되는 실시간 온라인 수업이기 때문에, 재학 중인 나에게는 무리인 스케줄이었다.부트캠프에 신청서를 넣어본 이유도 부담..