본문 바로가기

분류 전체보기

(83)
[Java] TreeSet에서 커스텀 객체 정렬 궁금증이 들어서 코드를 쳐보다가 알게 된 점이 있어서 TreeSet에 대해서 기록해두고자 합니다. 기본적으로 Set은 중복을 허용하지 않는 자료구조입니다. 여기에 Tree가 붙으면서 이진 탐색 트리(binary search tree)의 형태로 Set이 구현된 자료구조가 됩니다. 즉, 데이터들이 정렬이 되어 저장된다는 것입니다. 정렬이 된다는 부분에서 Integer 타입이나 String 타입이 들어갔을 때는 아 정렬이 쉽게 되겠구나라고 생각을 했습니다. 근데 만약 Student 같은 커스텀 객체가 들어간다면 어떻게 될까라는 궁금점이 생겨서 코드를 작성해 봤습니다. # Student 객체 생성 Student 객체는 학번(studentId)과 이름(name)만을 필드로 갖는 객체입니다. public class..
[Git] Git 사용해보기 (Git 명령어) Git을 사용하기 위해서는 먼저 Git을 설치해 줘야 합니다. Git 다운로드 링크에 들어가서 각자 운영체제에 맞는 Git을 설치해 줍니다. 저는 Mac을 사용하기 때문에 homebrew로 설치해 줬습니다. 그리고 Git을 터미널에서 사용하는 과정에서 CLI 명령어가 주로 사용될 것이기 때문에 미리 익혀두시는 것이 좋을 거 같습니다. 터미널에서 명령어로 Git을 사용하다 보면 화면에서 편하게 눈으로 보면서 클릭으로 간편하게 Git을 사용할 수 있는 GUI(Graphical User Interface) 툴인 Sourcetree나 Gitkraken 등을 사용하면 되지 않을까라는 생각을 하게 됩니다. Git이 어떤 방식, 어떤 명령어로서 버전을 관리할 수 있는지 원리를 알아야 나중에 GUI 툴을 사용하게 되더..
[Git/Github] Git과 Github에 대해서 알아보자 개발에 관심이 있거나 개발을 해본 분들은 Github에 대해서 많이 들어봤을 것이다. 근데 Git은 무엇인가? 둘이 똑같은 거 아닌가?라는 생각을 할 수도 있다. 필자도 개발에 처음 입문했을 때 당시 정확한 의미를 모르고 사용했을 때, Github를 줄여서 편하게 Git이라고 부르는 줄 알고 있었다. 😂 둘은 다른 소프트웨어이고, 서로 맡은 역할이 다르다. Git이란? 버전을 관리하기 위한 소프트웨어를 말한다. 여기서 버전이라는 것은 그럼 무엇일까? 버전은 변경사항이라는 단어로 대체해서 사용할 수도 있는데, 유의미한 결과가 결과물로서 나오는 것을 버전이라고 한다. 아직도 어려운 느낌이 있다. 그럼 유의미한 결과는 무엇일까? 수정하고, 삭제하고, 새롭게 생성하고, 버그를 수정하는 등의 행위들이 모두 유의미..
[Git] CLI 명령어 사용하기 Git을 터미널에서 원활하게 사용하기 위해서 필요한 CLI 명령어에 대해서 먼저 알아보는 시간을 가져보자. CLI 명령어 CLI란 Command Line Interface의 약어로 우리가 사용하는 검은색 화면의 터미널을 말한다. CLI 명령어는 검은색 화면에서 내가 직접 칠 수 있는 글자(명령어)라는 의미이다. Git을 다뤄보기 전에 CLI 명령어에 대해서 알아보는 시간을 가져보자. # pwd 내가 현재 위치해 있는 경로를 확인할 수 있는 명령어이다. 우리가 폴더에서 폴더를 클릭하면서 옮겨다닐 때는 눈에 다 보여서 상관이 없지만, 터미널에서 글자만 가지고 이 폴더 저 폴더를 옮겨 다니다 보면 내가 지금 어디에 위치해 있는지 헷갈릴 때가 있다. 이럴 때 사용해 주면 유용하게 쓰일 수 있다. # ls 현재 ..
[프로그래머스] 혼자서 하는 틱택토 Java https://school.programmers.co.kr/learn/courses/30/lessons/160585 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이번 문제는 게임 과정에서 생길 수 있는 모든 반례를 찾는 문제로 판단된다. 문제를 간단하게 한번 분석해 보면 머쓱이가 혼자서 O와 X로 빙고 게임을 진행한다. 진행 중인 게임 상황이 입력으로 주어졌을 때, 그 게임이 정상적으로 나올 수 있는 상황이라면 1을 반환, 아니면 0을 반환하면 된다. 즉, 빙고 게임에서 나올 수 있는 모든 반례를 찾아서 해결해야 된다는 의미이다. 문제 분석 1. 후공(..
[패스트캠퍼스] 패스트캠퍼스 백엔드 개발 5기 부트캠프 첫날 국비교육을 받기로 한 이유 이번에 국민취업지원제도에 등록해서 국비지원 교육을 받게 되었습니다. 작년 초에 대학 동아리에서 처음 개발을 접하게 되었고 백엔드 개발자가 되기로 마음을 먹었습니다. 효율적인 성장을 하기 위해서는 뜻이 같은 사람들과 함께 성장하는 것이 중요하다고 생각합니다. 또한 앞으로 나아가는 법을 잘 모르는 상태이기 때문에 방향을 잡아줄 수 있는 교육 기관의 도움을 받는 것이 좋을 거 같다는 생각을 했고, 국비지원 교육을 받기로 결정했습니다. 패스트캠퍼스에 지원한 이유 그렇게 선택한 교육이 패스트캠퍼스 백엔드 개발 5기 부트캠프입니다. 많은 부트캠프가 존재하고, 선택의 요소들이 정말 많았습니다. 그중에서 패스트캠퍼스를 선택한 이유는 프로젝트가 많았기 때문입니다. 무조건 많은 프로젝트가 좋다는..
[프로그래머스] 레벨 1 문제 모두 풀고난 후 배운점 계속 새로운 문제가 나오고 있지만 2023년 3월 16일 기준으로 레벨 1 문제를 모두 해결해 봤다. 언어는 모두 Java를 사용해서 풀었다. 원래 레벨 1을 조금 풀다가 이정도면 2 레벨로 들어가도 되겠다는 어리섞은 생각을 하게 되었다. 쉽게 풀렸던 몇몇 레벨 2문제를 만나서 그동안 몰랐던 거 같다. 그래서 적어도 레벨 1 문제를 빠르게 다 풀어보자는 생각으로 문제를 풀기 시작했다. 레벨 1문제를 풀며 느낀 점을 정리해보려고 한다. 🔎 무조건 List! 무조건 Map! 내가 처음에 레벨 2를 풀기 시작했을 때 했었던 생각이다. 배열 보다는 역시 리스트를 써야지 이런 생각을 했었고, 실제로도 그렇게 풀었었다. 물론 List, Map, Set 모두 훌륭한 자료구조이다. 하지만 레벨 1문제를 풀면서는 먼저 ..
[오류해결] JSP img GET 요청 시 한글 깨짐 문제 상황 프로필 이미지를 업로드한 후 태그의 src로 해당 경로 요청했을 때, 한글이 깨지는 현상이 발생. 연두.png라는 사진 파일을 프로필 이미지로 업로드했고, DB에도 한글로 잘 데이터가 들어가 있는 것을 확인했다. 프로필에서 사용할 수 있는 DTO를 model에 담아서 jsp에 전달해 주는 Controller 로직을 작성했다. // UserController.java @GetMapping("/user/{pageUserId}") public String profile(@PathVariable int pageUserId, Model model, @AuthenticationPrincipal PrincipalUserDetails principal) { UserProfileDto dto = userSer..