일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 카카오코테
- MySQL
- 코틀린
- 안드로이드
- 인프런
- 자료구조
- select
- 혼공단
- 코테
- join
- 기술면접
- 혼공챌린지
- 안드로이드스튜디오
- 오블완
- 정보처리기사
- 티스토리챌린지
- java
- Kotlin
- 자바
- SQL
- 스터디
- 알고리즘
- groupby
- Til
- Android
- 혼공파
- CS
- 프로그래머스
- doitandroid
- 정처기
- Today
- Total
목록Til (37)
Welcome! Everything is fine.

이번 심화 프로젝트를 진행하다가 튜터님께 피드백 받은 내용이 있다.사실 이 부분은 정신 놓고 코드 짠거 같아서 부끄럽지만..같은 실수를 하지 않기 위해 정리해본다. 🛠️ 변경 전 코드우선 OwnerOrderController는 가게 사장님이 들어온 주문을 수락 및 거절하는 API를 가지고 있다. 수락이 되었다면 음식조리중, 배달중, 배달완료 순으로 흐를 수 있도록 해야한다. 다음 코드를 보면, 각각의 상태에 따라 API가 다 따로 만들어져있다. 처음에는 상태가 되돌아 갈 수 없도록 하는 것에만 집중해서 예외 처리만 하고 끝냈다.@RestController@RequiredArgsConstructor@RequestMapping("/api")public class OwnerOrderController { ..
문제점develop 브랜치에서 git pull origin develop을 하려는데 에러가 발생했다.에러 메세지를 읽어보니 내 브랜치에서 아직 커밋되지 않은 변경 사항이 존재하기 때문에 발생한 것이었다.하지만 현재 내 로컬 브랜치에서의 작업이 아직 끝나지 않아서 commit하고 싶지 않았다.해결 방법변경 사항을 유지하면서 git pull 하는 방법으로 진행했다. 1) 변경 사항 임시 저장git stash push -m "임시 저장" 2) 원격 저장소에서 최신 코드 가져오기git switch developgit pull origin develop 로컬 develop 브랜치에 원격 develop 코드를 가져올 것이기 때문에 develop 브랜치로 이동 후 진행했다. 3) 다시 내 브랜치로 이동 후 변경 사항..
강의를 참고하여 비밀번호 수정 기능을 구현하던 중, 왜 단순히 Setter를 사용하지 않고 updatePassword() 메서드를 따로 만들어야 하는지 의문이 들었다. public void updatePassword(String password) { this.password = password;} Member 엔티티에서 아래와 같이 @Setter를 password 필드 위에 추가하면 안되는 것일까?@Setter@Column(nullable = false)private String password; 찾아보니 Setter의 사용을 지양하는 이유는 여러가지가 있었다. 1️⃣ Setter를 사용하면 객체의 일관성을 유지하기 어렵다.어디서든 값이 변경될 수 있어 데이터 무결성이 깨질 위험이 있다.2️⃣ Se..

INSERT 됐지만 테이블이 안보이는 문제댓글 작성 시, 아래와 같이 INSERT문은 제대로 실행된 것 같은데 DB에서는 comment 테이블이 보이지 않는 문제가 있었다. @Transactional을 추가하지 않은 것이 원인이다. 트랜잭션이 자동으로 커밋되지 않아서 데이터가 DB에 반영되지 않았던 것이다. Service 계층에서 DB 작업을 수행할 때는 반드시 @Transactional 을 사용해 트랜잭션을 관리해야한다.다음과 같이 @Transactional 을 붙인다.@Transactionalpublic CommentResponseDto save(Long scheduleId, String email, CommentRequestDto dto) { Schedule schedule = schedule..
✅ 계산기 과제 해설과제 제출 마감 직후, 바로 튜터님의 해설 세션이 시작되었다. 해설을 들으며 내가 빼먹은 부분이나 몰랐던 부분을 알게 되었다. ✔️ null을 조심하자보통 문자열이 같은지 확인하기 위해 equals() 메서드를 쓸 때, 다음과 같이 사용해왔다.input.equals("exit");하지만 확실히 null이 될 수 없는 것을 앞에 두는 것이 좋다고 한다.“exit”.equals(input); ✔️ 요구사항은 꼼꼼히예외처리를 할 때, 여러 상황에서 살펴봤지만 정작 양의 정수로 제한하는 예외 처리를 빼먹었다.요구사항을 더 꼼꼼히 살피는 습관을 들이자.if (num1 ✔️ 타입 매개변수 제한이 중요!Lv.3에서 사용된 제네릭은 사용해봤다는 것이 중요하다고 하셨다. 특히 와 같이 타입 매개변..
✅ 자바 강의 듣기중첩클래스, 내부 클래스중첩 클래스는 크게 정적 중첩 클래스, 내부 클래스 2가지로 분류할 수 있으며, 총 4가지가 있다.정적 중첩 클래스 : 정적 변수(클래스 변수, static 변수)와 같은 위치에 선언, static 키워드 사용내부 클래스내부 클래스 : 인스턴스 변수와 같은 위치에 선언, static 키워드 사용하지 않음, 바깥 클래스의 인스턴스 멤버에 접근지역 클래스 : 지역 변수와 같은 위치에 선언, 코드 블럭 안에서 클래스 정의, 내부 클래스의 특징 + 지역 변수에 접근익명 클래스 : 이름이 없는 클래스로, 지역 클래스의 특별한 버전 class Outer { ... // 정적 중첩 클래스 static class StaticN..

✅ 웹개발 기초 강의 듣기배포란?배포 : 소프트웨어 개발 과정에서 개발한 애플리케이션, 웹사이트, 서비스 등을 실제 사용자들에게 제공하는 과정. 배포를 하면 외부에 내가 만든 작업물을 공개할 수 있다.URL(Uniform Resource Locator) :인터넷에서 특정 리소스의 위치를 나타내는 주소, 즉 웹페이지나 파일의 고유한 주소를 말한다. 보통 URL은 [프로토콜://도메인/경로] 와 같은 형식이다.프로토콜(protocol) :웹 브라우저와 웹 서버 간의 통신 방식을 지정(ex. http://)도메인(domain) : 인터넷 상에서 고유한 식별자로 사용되는 웹 사이트의 주소(ex.naver.com)경로(path) : 웹 사이트 내에서 특정 페이지나 파일의 위치를 지정, 경로는 슬래시("/")로 구..
✅ 웹개발 기초 강의 듣기 학교 수업때 배운 희미하게 남아있는 기억들을 다시 되짚어보는 시간이었다. HTML/CSS는 솔직히 예전에도 그랬지만 조금 재미가 없다..ㅎ 빨리빨리 넘어가야지.웹의 동작 개념클라이언트 : 웹 브라우저를 통해 요청을 보내고, 받은 HTML 파일을 그려줌서버 : 요청을 처리하고, HTML, CSS, JavaScript, 이미지 등의 데이터를 클라이언트에 응답HTML 기초HTML(HyperText Markup Language) : 웹 페이지의 구조를 정의하기 위해 사용되는 마크업 언어. 웹 페이지의 뼈대를 만드는 역할.HTML은 크게 로그인 페이지 ID: PW: 로그인하기 CSS 기초CSS(Cascading Style Sheets) : 웹 페이지의 스타일과 레이아웃을 ..