구글 oauth2 리다이렉션 400오류
2021. 9. 30. 21:25
기타 IT
구글 oauth2 로그인을 사용하는데 분명 리다이렉션 도 잘등록되어 있었는데 갑자기 400오류를 뱉으며, 리다이렉션 주소가 틀렸다고 메시지가 떴습니다. 하지만.. 리디렉션은 설정이상 무.. 그리고 기존에 원래 잘 되었습니다. 또 신기한건 로컬에서는 정상작동.. 그래서 결국 유스방에서 같이 상의를 해보니.. url 문제가 맞았습니다. 이전에는 http://www.devlogmoa.shop/blogs로 접속을 하고, 현재는 http://devlogmoa.shop/blogs로 접속을 했기 때문에 등록된 리디렉션 url이 없어서 당연히 400오류를 받은 것이었습니다. 그래서 등록을 해주니 해결 되었습니다. 두 url 모두 접속이 가능했던 이유는 까먹고 있었는데.. aws route53에 등록을 해놨었네요.. (..
Gmail Smtp 534-5.7.14와534-5.7.9에러
2021. 9. 30. 21:25
기타 IT
gmail smtp를 사용하여 새로운 글이 등록되면 메일 전송하는 서비스를 운영 중입니다. 그런데 로컬에서는 정상동작 하는데 ec2(운영)서버만 가면 에러가 발생하였습니다. 🔍 534-5.7.14에러 먼저 아래와 같은 에러가 발생하였습니다. 이는 보안이 낮은 앱에서 접근 시 발생하는 에러입니다. Caused by: javax.mail.AuthenticationFailedException: 534-5.7.14 찾아본 결과 보안이 낮은 수준의 앱 접근을 허용한다. 하지만 저는 허용을 해도 접근이 되지 않았습니다. 2단계 인증 등록 이 의미는 2단계 인증을 사용하여 보안을 강화해야 하라는 의미입니다. 기존 에러는 해결 되었지만 하지만 새로운 에러가 발생하였습니다. 🔍 534.5.7.9에러 위 에러를 해결하니 ..
싱글톤에서의 상태값
2021. 9. 26. 22:15
기타 IT
스프링 DI컨테이너는 디폴트로 싱글톤으로 관리하게 됩니다. 싱글톤은 객체를 매번 새로 생성하지 않아 메모리 관리에 효율적입니다. 하지만 가장 큰 단점은 객체를 공유한다는데 있습니다. 그렇기 때문에 싱글톤은 상태값을 가지면 안됩니다. 왜 상태값을 가지면 안되는지 알아보도록 하겠습니다. 🔍 상태값을 가지면 안되는 이유 싱글톤 객체 @Getter @Setter public class SingletonT { private final static SingletonT instance = new SingletonT(); private String name; public static SingletonT getInstance() { return instance; } public String setLocalVariable..
IoC, DI 컨테이너
2021. 9. 26. 22:14
기타 IT
✔️ IoC와 DI 무엇일까? 🔍 IoC(Inversion of Control) 제어의 역전 코드를 사용하는 클라이언트가 직접 제어를 하지 않고 오직 인터페이스에만 의존하여 사용하는 방식을 의미 합니다. 구현체가 변경이 되어도, 클라이언트 코드는 변경하지 않아도 되며, 구현체를 변경할 때 제어를 담당하는 객체에서 구현체만 갈아 끼워주면 되기 때문에 유지보수에 아주 용이합니다. 아래 코드는 Repository 인터페이스를 사용하는 코드입니다. 하지만 클라이언트(service)는 Repository가 어떤 구현체인지 전혀 알지 못하며, 구현체가 변경 되더라도 전혀 지장이 없습니다. 즉, 제어권이 없는 것이죠. public class Service { private final AppConfig appConfi..
라이브러리와 프레임워크 차이
2021. 9. 26. 22:13
기타 IT
라이브러리 암호화 처리, Jackson 등과 같이 사용하는 프로그램에서 이를 제어하게 되는 것을 라이브러리라고 합니다. Jackson에서 나의 프로그램을 제어하는 것이 아닌 내 프로그램에서 Jackson을 제어하는 것입니다.프레임워크 스프링, Junit등과 같이 자신의 라이프 사이클에 맞춰 나의 프로그램을 제어하는 것을 프레임워크라고 합니다. 즉, 내 프로그램이 스프링에 의해 제어가 되는데 이를 프레임워크라고 합니다. 제어권에 차이가 있는 것인데, 라이브러리는 클라이언트가 제어하는 것이고, 프레임워크는 클라이언트가 제어되는 것!! 입니다.
객체지향 프로그래밍이 뭔가요?
2021. 5. 15. 10:20
기타 IT
가장 많이 하는 세상 모든 것을 객체로 바라보고 객체로 설계한다. 맞는 말이라고 생각 합니다. 하지만 당연히 현실에서는 불가능한 날개가 달린 호랑이 객체 같은 것들이 나올 수는 있겠죠?? 즉, 세상의 모든 것을 객체로 바라본다는 것은 호랑이 자체를 객체로만 만들 수 있다는 아니라는 점 입니다. 현실에서는 불가능한 날 수 있는 호랑이 객체도 가능 하다는 것이죠.(너무 당연..) 결국, 호랑이에 대한 모든 것을 객체로 만든다기 보다는 맹수라는 객체로 호랑이를 추상화하고, 여기에 모양이 맞는 호랑이, 사자와 같은 객체 만드는 것이라고 생각 합니다. 이렇게 원하는 것들을 모두 객체로 바라보는 것이 객체지향이고, 이를 프로그래밍화 하는 것이 객체지향 프로그래밍 이라고 생각 합니다. 객체지향 프로그래밍은 왜 생겨났..
좋은 코드가 뭐에요??
2021. 5. 15. 09:35
기타 IT
사람들은 이건 좋은 코드야 이건 안좋은 코드야 라는 말을 합니다. 이에 대해 객체지향 생활체조 원칙, TDD, DDD 등 여러가지 기법들이 존재 합니다. 하지만 항상 저러한 이상적인 원칙을 따를 수는 없다고 생각 합니다. 각 상황마다 너무 너무 적용할 수 있는 사례들이 다르기 때문 입니다. 간단한 예로 반드시 객체지향 생활 체조 원칙의 else문을 사용하지 말아라. 들여쓰기는 1단계만 해라. 등과 같은 것들이 있습니다. 저는 이를 토이 프로젝트를 할 때는 더 심하게 지키려고 하지만 회사에서는 문화가 그렇지 않기 때문에 어느정도만 지키려고 합니다. 이는 핑계가 될 수도 있겠지만, 효율적인 것이라고 생각 합니다. SI에서 진행 하다보니 코드 구조를 제대로 알기가 힘듭니다. 코드의 역사를 제대로 알아야 과거 ..