전체 글

좋은 영향력을 전파하기 위해 노력하는 엔지니어 리오입니다.
· Python
계기 면접을 준비하면서 프로젝트와 문법만 공부하고 파이썬의 내부구조에 대한 이해가 낮다는 것을 알게 되었다. 이참에 정리하면서 내부구조도 학습해야 겠다. 참고 사이트: https://medium.com/dmsfordsm/garbage-collection-in-python-777916fd3189 GC(Garbage Collector란?) 거의 모든언어에서 사용되며 GC를 통해 메모리를 직접 관리 해주면서 개발자가 직접 메모리를 관리하는 코드를 작성 하지 않게 됨으로써 생산성이 크게 향상되었다. 하지만 메모리를 자동으로 관리는 해주지지만 서비스, 환경이 달라도 동일하게 관리를 해서 최적화가 덜 되어 있는 현실이다. 메모리 관리해야하는 이유 프로그램의 실행에 프로세스의 실행의 필요한 메모리가 할당되어야 한다...
스프링 부트는 스프링 프레임워크를 기반으로 만들어진 백엔드 프레임 워크이다. 스프링 부트의 동작원리를 이해하기전에 스프링 부트의 다양한 계층, 클래스를 알아보자 레이어 Presentation Layer (프레젠테이션 계층)프레젠테이션 계층은 HTTP 요청을 처리하고 JSON으로 받은 데이터를 객체로 변환하여 요청을 인증하고 비지니스 계층으로 전달한다. 간단히 말해서 뷰, 즉 프론트엔드 부분으로 구성됨 Business Layer (비지니스 계층)비지니스 계층은 모든 비즈니스 로직을 처리하며 서비스 클래스로 구성되어 데이터 엑세스 계층에서 제공하는 서비를 사용합니다. 그리고 권한 부여 및 유효성 검사를 수행합니다. 데이터 엑세스 계층: DAO나 Repository와 같은 데이터 베이스와 직접 접근하는 계층...
알고리즘 문제를 풀면서 두선을 교차해서 교차여부를 확인하는 문제가 나왔지만 풀다가 시간초과로 인해 풀지 못했지만 다음에 기회가 생기면 풀 수 있도록 하기위해 블로그에 기록해서 남겨야할 필요성을 느꼈다. CCW "평면에 놓여진 세 점의 방향관계를 구하는 알고리즘" 세 점이 주어져 있는 경우에, 이 점세개가 시계방향, 아님 반대 시계방향, 평행하는지 구하는 알고리즘으로 CCW 알고리즘은 시계반대방향일 때 양수, 시계방향일 때 음수, 평행일 때 0을 반환한다. 각각의 점을 P1(x1, y1) , P2(x2, y2), P3(x3, y3) 이라고 좌표를 두고, A,B,C 순서로 방향관계를 구한다면, CCW 함수의 return값은 (x2 - x1)*(y3 - y1) - (x3 - x1)*(y2 - y1) 이 된다 ..
· CS
OOP 프로그램이 대형화 되고 대량 생산이 필요하게 되면서 등장한 방법으로, 큰 프로그램을 작은 단위로 분리해서 객체들 단위로 파악함으로써 각각의 프로그램은 메시지를 주고받고 데이터를 처리 할 수 있게된다. 장점 프로그램을 작은 기능이나 목적에 따라 나뉘었기 때문에 프로그램이 유연하고 변경이 용이함 프로그램을 학습하는데 더욱 편리하고 개발과 보수하기가 더 편리해졌다. 코드가 간결해 지므로 직관적으로 코드를 분석할 수 있다는 장점이 있다. 단점 처리 시간이 절차 지향 프로그래밍 보다는 오래 걸린다. 프로그램 설계할 때의 전문성과 많은 시간을 요구함. OOP 5대원칙 S(SRP : Single Responsibility Principle, 단일 책임 원칙): 한개의 클래스는 하나의 책임만 가져야함, 클래스를..
요구사항 네이버 로그인과 구글 로그인을 사용하기 때문에 이를 구별 해줄 수 있는 서비스를 구현해야한다. 서비스 구현 @Service @RequiredArgsConstructor public class CustomOAuth2UserService implements OAuth2UserService { } OAuth2UserService 타입을 파라미터로 받고 서비스를 설정하기 때문에 반드시 상속 받아야 한다. 메서드 오버라이딩 @Service @RequiredArgsConstructor public class CustomOAuth2UserService implements OAuth2UserService { @Override public OAuth2User loadUser(OAuth2UserRequest us..
· 일상
접수 하게 된 계기 토이 프로젝트를 진행하면서 취업하기 전 부족한 알고리즘 지식과 코딩테스트를 채우기 위해 여러 강의를 찾던 중에 평소에 자주 이용하던 프로그래머스를 통해 알게 되었다. 교육 과정 교육과정은 4주 과정으로 아래와 같이 커리큘럼으로 이루어져 있었습니다. - 1주차 교육 과정 진행 방식은 필수 문제 2문제와 기타 문제 등으로 이루어져 있었고 평소에 코딩테스트를 가끔 푼다면 어렵지 않게 풀 수 있는 문제였다. 하지만 PR을 받으면서 불필요한 else문, 객체 지향적으로 점점 바뀔 수 있게 피드백을 곰튀김님께서 해주셔서 oop의 길은 멀고도 험하다는 걸 직접 체감했습니다 ㅜㅜ - 2주차 실시간 세션은 질문 -> 문제풀이 -> 전체적인 피드백 -> 자료구조 -> 질문 과정으로 진행되었다. 자료구조..
ri5
리오의 개발일지