본문 바로가기

TIL(Today I Learned)

(137)
TIL-230929(자료구조 & 알고리즘 1주차) 📝오늘 공부한 것 프로그래머스 문제풀기 스파르타코딩클럽 자료구조 & 알고리즘 1주차 강의 듣기 알게 된 점❗ [ 점근 표기법 ] 알고리즘의 성능을 수학적으로 표기하는 방법 빅오(Big-O)표기법 : 최악의 성능이 나올 때 어느 정도의 연산량이 걸릴 것인지 에 대해 표기 ex) O(N)​의 시간복잡도를 가진 알고리즘 빅 오메가(Big-Ω) 표기법 : 최선의 성능이 나올 때 어느 정도의 연산량이 걸릴 것인지에 대해 표기 ex) Ω(1)​의 시간복잡도를 가진 알고리즘 1. 입력값에 비례해서 얼마나 늘어날지 파악해보자.1 ? N ? N^2 ? 2. 공간복잡도 보다는 시간 복잡도를 더 줄이기 위해 고민하자. 3. 최악의 경우에 시간이 얼마나 소요될지(빅오 표기법)에 대해 고민하자 [ 시공간 복잡도 ] 시간 복잡도..
TIL-230928(자료구조 & 알고리즘 1주차) 📝오늘 공부한 것 프로그래머스 문제풀기 스파르타코딩클럽 자료구조 & 알고리즘 강의 듣기 알게 된 점❗ 자료구조는 컴퓨터 과학의 핵심 개념으로 데이터를 저장하고 관리하는 방법 배열, 리스트, 벡터, 큐, 스택, 해시 등이 있다. [ 텍스트 자료의 표현 ] ASCII (American Standard Code for Information Interchange) 가장 일반적으로 사용되는 문자 인코딩 중 하나 ASCII는 7비트로 구성되며, 각각의 비트 조합은 128개의 고유한 문자를 나타낸다. ASCII 코드는 영어 알파벳, 숫자, 특수 문자 등을 포함한다. 예를 들어, 대문자 'A'는 ASCII 코드에서 65에 해당하는 값으로 표현되며, 이진수로는 01000001이다. ASCII는 각 문자를 7비트로 표현하..
TIL-230927(자바의정석 Chapter10 '날짜와 시간 & 형식화') 📝오늘 공부한 것 이력서 수정하기 자바의 정석 스터디 📌 자바의 정석 스터디 [날짜와 시간] Calendar와 Date Calendar는 추상클래스이기 때문에 직접 객체를 생성할 수 없고, 메서드를 통해서 완전히 구현된 클래스의 인스턴스를 얻어야 한다. Calendar가 새로 추가되면서 Date는 대부분의 메서드가 ‘deprecated’되었으므로 잘 사용되지 않는다. // Calendar를 Date로 변환 Calendar cal = Calendar.getInstance(); Date d = new Date(cal.getTimeInMills()); // Date를 Calendar로 변환 Date d = new Date(); Calendar cal = Calendar.getInstance(); cal.set..
TIL-230926(자바의정석 Chapter09 'java.lang패키지와 유용한 클래스') 📝오늘 공부한 것 자바의 정석 공부 - Chapter 10 이력서 수정하기 자바의 정석 스터디 📌 자바의 정석 스터디 [ java.lang 패키지] Object클래스 Object클래스는 멤버변수는 없고 오직 11개의 메서드만 가지고 있음 이 메서드들은 모든 인스턴스가 가져야할 기본적인 것들임 equals(Object obi) 매개변수로 객체의 참조변수를 받아서 비교하여 그 결과를 boolean값으로 알려주는 역할 객체를 생성할 때, 메모리의 비어있는 공간을 찾아서 생성하므로 서로 다른 두 개의 객체가 같은 주소를 갖는 일은 있을 수 없음. 두 개 이상의 참조변수가 같은 주소값을 갖는 것은 가능함. String클래스뿐만 아니라, Date, File, wrapper클래스의 equals메서드도 주소값이 아닌 ..
TIL-230925('행동대장' 코드리팩토링 - 회원관리 페이지) 📝오늘 공부한 것실전프로젝트 - '행동대장' 코드리팩토링(로그인/회원가입 페이지)자바의 정석 공부 - Chapter 10 📌코드리팩토링 - 로그인/회원가입 페이지⛔ 문제점 : 마이페이지와 마찬가지로어떤 요청은 유효성 검사 실패에 대한 메시지를 반환하고, 어떤 요청은 반환하지 않은 응답의 일관성 문제class형식으로 작성된 dto예외처리 시 ClientErrorCode의 중복 코드 발생 문제Transactional의 불필요한 적용 문제등이 있었다. 💯 해결일관되게 유효성 검사 실패 시 모두 메시지를 반환시키기데이터의 무결성 유지를 위해 class대신 record로 dto변경하기static import를 통해 ClientErrorCode코드 중복 제거하기Transactional 맞게 걸어주기를 통해 문..
TIL-230923(자바의정석 Chapter08 '예외처리') 📝오늘 공부한 것 자바의 정석 공부 - Chapter 09 이력서 수정하기 자바의 정석 스터디 📌 자바의 정석 스터디 [ 예외처리 ] 프로그램 오류 컴파일 에러 : 컴파일 시 발생하는 에러 런타임 에러 : 실행 시 발생하는 에러 논리적 에러 : 실행은 되지만, 의도와 다르게 동작하는 것 에러 : 프로그램 코드에 의해서 수습될 수 없는 심각한 오류 예외 : 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류 예외 클래스의 계층구조 Exception클래스들 : 사용자의 실수와 같은 외적인 요인에 의해 발생하는 예외 RuntimeException클래스들 : 프로그래머의 실수로 발생하는 예외 printStackTrace()와 getMessage() printStackTrace() : 예외발생 당시의 호출스..
TIL-230922('행동대장' 코드리팩토링 - 마이페이지(2)) 📝오늘 공부한 것실전프로젝트 - '행동대장' 코드리팩토링(마이페이지) 📌코드리팩토링 - 마이페이지 부분 ⛔ 문제점 : 단일 책임 원칙 및 JWT 생성 시 고유한 값을 넣어주지 않음.JWT 생성 시 닉네임을 이용하여 만들다 보니, 닉네임이 변경되면 원래 user가 가지고 있던 JWT 인증 정보와는 일치하지 않아 에러가 났다. 그래서 이 문제를 해결하기 위해 사용자의 닉네임이 변경될 때마다 새로운 access token과 refresh token을 발급하여 클라이언트로 전달하도록 처리하도록 리팩토링을 진행했었다. https://yewon0309.tistory.com/entry/TIL-230831%ED%95%AD%ED%95%B499-%EC%8B%A4%EC%A0%84-%ED%94%84%EB%A1%9C%EC%..
TIL-230921('행동대장' 코드리팩토링 - 마이페이지) 📝오늘 공부한 것실전프로젝트 - '행동대장' 코드리팩토링(마이페이지)자바의 정석 공부 - Chapter 08 📌 코드리팩토링 - 마이페이지 부분 ⛔ 문제점 : 코드의 가독성 문제MyPageController를 보면서 한 줄에 있는 코드의 길이가 너무 길어 스크롤을 이리저리 넘겨가며 코드를 읽어야 했다. 모든 메서드의 길이를 동일하게 맞추는 것이 코드를 깔끔해 보이게 만드는 방법이라고 생각하여서 매개변수들을 한 줄에 작성하였다.그러다 보니 긴 매개변수들의 내용은 한눈에 확인하기 어려웠다. 💯 해결길이가 긴 매개변수들은 줄을 나누어 작성하였다. 이때 중요한 매개변수가 코드의 위쪽으로 올라오도록 하였다.이렇게 줄을 나누어 작성하니 스크롤을 움직이지 않아도 한눈에 코드를 볼 수 있어 가독성이 좋아진 것을 ..