분류 전체보기
![[Java의 정석] 08. 예외 처리](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fdg5fBR%2FbtrwagLyOLZ%2FAAAAAAAAAAAAAAAAAAAAAHF5OPaPq5lIneAIL1RyHHlfjKdMSHrpbaE2GP-GumdD%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DY8EUep4OhSTor1nxERyEYAO7Dm4%253D)
[Java의 정석] 08. 예외 처리
모르는 것만 짧고 빠르게 정리한 노트입니다. 1.1 프로그램 오류 에러(error) : 프로그램 코드에 의해서 수습될 수 없는 심각한 오류 예외(exception) : 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류 1.2 예외 클래스 : Exception 은 checked Exception 과 unchecked Exception 으로 나뉜다. unchecked Exception 은 보통 프로그래머의 실수에 의해 발생하고, checked Exception 은 어플리케이션 외적인 요인으로 발생한다. 1.3 메서드에 예외 선언하기 main 에서도 예외가 처리되지 않으면, 프로그램이 종료된다. 1.9 자동 자원 반환 try with resources 문 try (FileInputStream fis =..
![[Django 웹프로젝트] 10. 호환성을 고려한 소셜로그인 버그 수정 (2022-03-14~15)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FcifFPa%2Fbtrv3gSXi7v%2FAAAAAAAAAAAAAAAAAAAAABHQvqs9cahsrGBJ29ytS1-Z1X2Fe9t97DcCE74wmtwk%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DF8mSU8VWcLl8OYo158G3yctGrrI%253D)
[Django 웹프로젝트] 10. 호환성을 고려한 소셜로그인 버그 수정 (2022-03-14~15)
(문제상황) - 소셜로그인을 통해서만 로그인이 가능하도록 구현되어있다. - OAuth2 인증 후 제공받는 사용자의 이메일 정보와, 회원가입 시 기재한 프로필 정보를 매핑해서 보관하고 있었다. - (로그인 과정) OAuth2 로그인 시도 => 이메일 받아서 db 에 프로필 정보와 매핑되어 있는지 확인 => 로그인 처리 - 네이버는 OAuth2 를 통해 제공하는 이메일이 달라질 수 있다. => 연락처이메일이 달라져서 로그인이 안되는 경우 발생 - 또 처음부터 정보제공 동의를 하지 않더라도, 로그인이 진행되어 필수로 받아야하는 이메일 값이 넘어오지 않는 경우 발생 - 이슈 : https://github.com/InhaBas/Inhabas.com/issues/102 (해결방안) provider 와 uid 값으로..
[Java의 정석] 7.2 메소드 오버라이딩 시 예외 선언
책에서는 예외 부분을 굉장히 간단하게 설명이 되어있는 것 같아, 더 구체적인 자료를 찾아봄 "예외는 조상 클래스이 메서드보다 많이 선언할 수 없다." 라고 적혀있지만, 엄밀히 말하면 checked Exception 에만 해당하는 내용이다. unchecked Exception 에 대해서는 자식 클래스에서 추가로 선언해도 상관없다. (case 1) 부모 메서드가 checked exception 던질 때, class Parent{ void method1() throws SQLException { //checked exception } } class Child extends Parent{ void method1() { } } (case 2) 부모 메서드가 unchecked exception 던질 때, class..
![[Java의 정석] 07. 클래스 상속 & 인터페이스 상속](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fd8EIAI%2FbtrvVBa6Lto%2FAAAAAAAAAAAAAAAAAAAAAMOSQjVDZBNQtNSvqPI9Vp3zqusH6IoEtNdfU5EtfNu8%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3D6dWejZ7eXaXdZMo3wCxnJXTUq%252BU%253D)
[Java의 정석] 07. 클래스 상속 & 인터페이스 상속
모르는 것만 짧고 빠르게 정리한 노트입니다. 2.2 오버라이딩의 조건 조상 클래스이 메서드를 자손 클래스에서 오버라이딩 할 때, 접근 제어자를 조상 클래스의 메서드보다 좁은 범위로 변경할 수 없다. 예외는 조상 클래스이 메서드보다 많이 선언할 수 없다. 인스턴스메서드를 static 메서드로 또는 그 반대로 변경할 수 없다. 책에서는 예외 부분을 굉장히 간단하게 설명하는 것 같아, 따로 더 정리했다. [Java의 정석] 7.2 메소드 오버라이딩 시 예외 선언 책에서는 예외 부분을 굉장히 간단하게 설명이 되어있는 것 같아, 더 구체적인 자료를 찾아봄 "예외는 조상 클래스이 메서드보다 많이 선언할 수 없다." 라고 적혀있지만, 엄밀히 말하면 checked letsmakemyselfprogrammer.tisto..
![[Django 웹 프로젝트] 트래픽 및 방문자 수 (2022.02.11 ~ 2022.03.12)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fec1epw%2FbtrvPeUySUe%2FAAAAAAAAAAAAAAAAAAAAACBkWQIzVHSkqtzJio49KNoHl--pgHgDDYwG4Vd1R8Wy%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DEA9yZuKMWXU%252Bd5iTe1G6RBkS5eM%253D)
[Django 웹 프로젝트] 트래픽 및 방문자 수 (2022.02.11 ~ 2022.03.12)
- 트래픽 한달간 총 9 만건의 요청 일 평균 3천건의 트래픽 점점 증가추세, 학교 내에서 입소문을 타기 시작한듯. 신입부원이 계속 늘어나고 있다. - 고유 방문자 수 한달 간 총 고유 방문자 1670명 30일 동안의 일일 고유 방문자 수는 총 2918 명 (77, 117,53,68,90,99,89,75,92,89,75,115,98,100,137,129,72,80,81,92,138,113,154,83,67,87,148,93,109,98) 하루 평균 고유 방문자 수는 약 97명 - 하루 평균 방문자 한명이 요청하는 평균 트래픽 건 수 = (하루 평균 트래픽) / (하루 평균 고유 방문자) = 약 3000 / 약 97 = 약 31 건 평균적으로 머무르는 시간은 5분이 채 안되는 것으로 추정되는 트래픽 숫자...
[Django 웹 프로젝트] 9. 소셜 로그인 관련 오류 수정 (2022-03-13)
[문제 상황1] (선조치 후분석) : 회원 A가 소셜로그인을 통해 회원가입을 진행했는데, 이메일만 None 으로 받아졌던 상황.(재현 실패) 입부 완료 메일을 보내지 못해서 서버 오류 로그가 나고 있었다. (대처) : 일단 빠르게 조치하기 위해 해당 회원의 이메일 값을 받아서 db 에 직접 넣어줬다. (분석) : 소셜로그인을 통해 받은 이메일 정보는 회원가입 중에 임의 수정할 수 없도록 설정해두었다. 그래서 회원 정보를 저장하는 중에 오류가 난 것으로는 보이지 않는다. 정보동의를 하지 않거나 이메일이 넘어오지 않으면 아예 회원가입을 할 수 없도록 해놨었기 때문에, 이메일이 없이 회원가입 페이지로 넘어가는 것도 이해가 잘 되지 않았다. - https://developers.naver.com/forum/po..
[Django 웹 프로젝트] 8. 점진적으로 api 로 교체 가능? (2021-11-21)
rest api 로의 전환 필요성 기존 Django 는 rest api 가 아니라, html 까지 렌더링하는 방식이다. 하지만 이 프로젝트는 크게 2가지의 문제상황을 마주하고 있다. 첫째로는 유지보수가 과연 가능할까? 라는 의문이다. 이전의 블로그 포스팅에서 정리되어있다. [Django 웹 프로젝트] 6. 유지 보수를 위한 새로운 아키텍처 고민 (2021-10-21) [Django 웹 프로젝트] 7. 유지 보수를 위한 새로운 인가인증 체계 고민 (2021-10-31) 두번째로 어플 제작을 기획 중에 있다는 점이다. 어플을 만들기 위해서는 hybrid app / web app / native 앱을 만들어야한다. 네이티브 앱 : SDK기반으로 개발된 애플리케이션. 모바일 플랫폼 API를 이용해 개발한다. 모..
![[도메인 주도 설계 철저 입문] 7. 의존 관계 제어](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FAM4j8%2FbtrvAV9qAvm%2FAAAAAAAAAAAAAAAAAAAAAK6qLFOYWI-TMfrkKcjWVzmanAzdPmxA2FV1ZaGqx3jD%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DEXDVuJRvIb4sDTZFLHLdqA%252FM6UE%253D)
[도메인 주도 설계 철저 입문] 7. 의존 관계 제어
1) 의존이란 무엇인가? (1) ObjectA 가 ObjectB 에 의존하는 관계의 예 public class ObjectA { private ObjectB objectb; } ObjectA 는 ObjectB 를 참조한다. 다시말해 ObjectB 가 없으면 ObjectA 는 정의될 수 없다. 이 때 ObjectA 가 ObjectB 에 의존한다고 한다. (2) 구현체가 인터페이스에 의존하는 관계의 예 public interface UserRepository { User find(UserId id); } public class UserRepositoryImpl implements UserRepository { @Override public User find(UserId Id) { (...생략...) } } ..