전체 글579 내 실력으로 취업이 가능할까 - 실제 사용자가 있는 프로젝트를 개발하라 - 다른 사람들에게 내가 만든 프로그램을 피드백 받아라 - 좋은 회사를 미친 듯이 찾아라 이민석 교수님의 블로그 게시글을 간추린 것입니다 출처 : [https://hl1itj.tistory.com/230](https://hl1itj.tistory.com/230) 지금 소프트웨어 개발자 수는 절대적으로 부족합니다 취업의 의미 ‘취업이 가능할까?’라는 질문에서의 취업은 ‘내가 원하는 회사에의 취업’을 의미할 가능성이 높습니다. 그 회사가 풀어내려고 하는 문제를 해결할 수 있는 역량, 그 회사가 다루고 있는 데이터에 관한 경험이 필요합니다. 연봉에 걸맞은 수준의 역량과 경험을 요구하지만 그런 역량과 경험은 학교에서 얻기가 쉽지 않습니다. 그래서 신입으로 원하는 회사에.. ETC/Thinking 2023. 7. 21. WebRTC Signaling 프로세스 - 심화 WebRTC Signaling 프로세스 - 심화 Intro 내 최종 목표는 미디어 스트림을 오디오/비디오와 분리해서 그룹 call을 하는 것이 목표이다. 이전 WebRTC Signaling 프로세스 - 기초 기반으로 MDN DOCS 프로세스 흐름도를 분석하자 흐름도 원본은 너무 커서 잘라서 리뷰하겠습니다 Signaling Process Naomi가 발신자, Priya가 수신자이다. 지금부터 왼쪽은 Naomi, 오른쪽은 Priya다 발신자 : Invite() - 수신자와 통신 준비 발신자는 가장 먼저 RTCPeerConnection을 생성한다. RTCPeerConnection은 피어 간의 WebRTC 연결 인터페이스로써 연결 유지, 모니터링, 메소드 제공등을 한다. getUserMedia()로 발신자 디바.. Computer Science/네트워크 2023. 7. 21. ReLU - [[Deep Learning]]에서 사용하는 활성화 함수 ReLU (Rectified Linear Unit) 함수는 활성화 함수 중 하나로, 입력이 0을 넘으면 그 입력을 그대로 출력하고, 0 이하이면 0을 출력하는 함수입니다 f(x) = max(0, x) sigmoid 함수보다 ReLU의 장점 신경망의 맥락에서는 sigmoid 함수가 활성화 함수로 전통적으로 사용되었습니다. 1. 기울기 소실 문제 (Vanishing Gradient Problem) 시그모이드 함수는 출력값이 0 또는 1에 가까워질수록 그래프의 기울기가 매우 작아져서, 역전파(Back-propagation) 과정에서 가중치의 업데이트가 거의 이루어지지 않는 기울기 소실 문제가 발생합니다. 반면, ReLU 함수는 출력값이 0보다 큰 경.. AI 2023. 7. 20. 왜 딥러닝이 뜨고 있을까 딥 러닝: 강력한 도구 Andrew Ng 교수님의 강의에 있던 내용을 정리한 것입니다 최근 몇 년간 딥 러닝은 세 가지 주요 요인으로 인해 강력한 도구로 부상하였습니다 1. 데이터 양의 증가 사회의 디지털화로 인해 생성하고 수집하는 데이터 양이 폭발적으로 증가하였습니다. 이 데이터는 더 크고 복잡한 신경망을 훈련시키는 데 사용될 수 있으며, 이는 성능의 향상으로 이어집니다 2. 컴퓨터 성능의 개선 GPU와 같은 하드웨어 및 네트워킹의 발전으로 인해 더 큰 신경망을 더 빠르게 훈련시킬 수 있게 되었습니다. 이로써 연구자와 실무자들은 아이디어를 더 빠르게 반복하고, 분야에서 신속한 진전을 이룰 수 있게 되었습니다 3. 알고리즘의 개선 신경망을 훈련시키기 위해 사용되는 알고리즘들은 큰 개선을 이루었습니다. 예.. AI 2023. 7. 20. 신경망 - 모든 인식 작업을 벡터 형태로 변환 처리 - 가장 간단한 [[Machine Learning|머신 러닝]] 모델 신경망은 인간 뇌를 모방한 알고리즘의 집합으로, 모든 인식 작업은 벡터 형태로 변환되어 처리됩니다. 이는 군집화와 분류를 보조하는 역할을 하며, 가장 간단한 머신 러닝 모델로 볼 수 있습니다. 신경망은 많은 다른 머신 러닝 모델의 기초가 됩니다. 가장 기본적인 신경망은 퍼셉트론이라 불리며, 이는 입력 데이터의 벡터를 받아 단일 이진 값을 출력하는 것입니다. 계층 (Layers) 신경망은 크게 세 가지 계층으로 구성됩니다. 입력 계층 (Input Layer) 데이터로 표시된 입력 벡터를 받습니다 각 뉴런은 데이터의 고유한 특징 열을 나타내며 이 계층의 크기는 데이터의 형태에 따라 결정됩니다. .. AI 2023. 7. 20. 의존성 주입(DI) DI (Dependency Injection, 의존성 주입) DI(Dependency Injection, 의존성 주입)는 IoC(Inversion of Control, 제어의 역전)의 구현 방법 중 하나입니다. 즉, IoC가 객체의 생성과 생명주기 관리를 프레임워크가 담당하는 전반적인 개념이라면, DI는 그 개념을 실제로 구현하는 방식 중 하나입니다. DI의 주요 개념 의존성 객체지향 프로그래밍에서 한 클래스가 다른 클래스에 의존하게 되는 경우 예를 들어, 클래스 A가 클래스 B의 메소드를 사용한다면, 클래스 A는 클래스 B에 의존하게 됩니다. 주입: 의존성 주입이란, 객체가 자신이 의존하는 객체를 직접 생성하거나 찾는 대신에 외부 시스템(즉, 프레임워크 또는 IoC 컨테이너)에서 생성된 것을 제공(주입.. DEV/Java 2023. 7. 20. MockMVC Get 응답 비어있을 때 해결 방법 Intro. 난, 손 발 달린 감자인가…? 🐥 카카오 테크 캠퍼스 - 2단계 4주차 과제 분석을 하고 과제를 수행하던 중, 컨트롤러 테스트에서 문제를 직면했다 "음흠, Product Controller에서 fakestore를 사용하니, MockBean을 만들어줘야지 그럼그럼"하면서 개발을 하고 있었는데 말이다, 분명히 데이터를 넣고, Request 내용을 출력했을 때 분명히 데이터가 출력이 되는데, 테스트 실행 결과에 response가 비어있다 기능 명세에 따르면 분명히, Request와 동일하게 데이터가 나와야 하는데 나오지 않는 것이다, 삽질 Get 요청에 Content 담아 전송 ResultActions result = mvc.perform( MockMvcRequestBuilders .get("/p.. DEV/Java 2023. 7. 20. 🐥 카카오 테크 캠퍼스 - 2단계 4주차 과제 분석 핵심 지표 컨트롤러 단위테스트가 구현되었는가? Mockito를 이용하여 stub을 구현하였는가? 인증이 필요한 컨트롤러를 테스트할 수 있는가? 200 ok만 체크한 것은 아닌가? (해당 컨트롤러에서 제일 필요한 데이터에 대한 테스트가 구현되었는가?) 모든 요청과 응답이 json으로 처리되어 있는가? 과제 고도화 DB 연결 없이 컨트롤러 테스트를 모두 진행하라 Repository도 만들고, 서비스도 다 만들어서 테스트 User 단일 유저 조회: Get /users/{id} @GetMapping("/users/{id}") public ResponseEntity findById( @PathVariable Integer id, @AuthenticationPrincipal CustomUserDetails user.. 프로젝트/카카오 테크 캠퍼스 2023. 7. 19. Junit Test 꿀팁 Intro. 사건의 전말 🐥 카카오테크캠퍼스 - 2단계 3주차 과제 구현 피드백이 도착했다는 알림에 후다닥 달려갔다 3주차 과제는 Repository Test가 핵심이라, 관련 피드백이 달렸다 처음 멘토님의 피드백을 읽고, 잘이해가 되지 않았다 문제의 코드 나름 피드백은 반영하려 했지만, 멘토님이 원한 방향이 아닌거 같아 다시금 질문을 드렸다 결론 일반적으로 PK로 사용되는 Id는 자동 증가를 사용하는 경우가 있어, 테스트시에 변경 될 여지가 있다 핵심은 유니크하게 데이터를 구분하여, 변경의 위험을 탈출하라 전역 변수 테스트할때 아이디를 활용하여 조회하는 경우 ID는 자동증가를 사용하기 때문에 내가 원하는 아이디가 나오지 않아서 테스트가 실패할 수도 있습니다. 예를 들어 유저정보를 @BeforeEach .. DEV/Java 2023. 7. 19. 역전파(Back-propagation) 역전파는 Deep Learning의 기본 알고리즘으로, 신경망이 오류를 통해 학습하고 성능을 개선하는 방법을 이해하는 데 필수적입니다 역전파라 불리는 이유는, 이전 단계에서 계산된 오차가 네트워크를 통해 다시 전파되어 출력 계층에서 입력 계층으로 이동하기 때문입니다 이 과정에는 초기 순방향 통과와 반대 방향으로 네트워크의 출력 계층에서 입력 계층으로 전파되는 계산이 포함됩니다. 이 역전파는 미적분학의 Chain Rule에 크게 의존합니다. 모델 구성 입력 레이어 프로세스는 초기 데이터가 네트워크에 공급되는 입력 레이어에서 시작됩니다. 각 입력에는 입력의 중요성을 나타내는 가중치가 할당됩니다. 이러한 가중치는 일반적으로 무작위로 초기화됩니다. 숨겨진 레이어 가중치가 적용된 입력은 하나 이상의 숨겨진 레이어.. AI 2023. 7. 19. Back-propagation and Autograd 역전파(Back-propagation) - 역전파 : Chain Rule을 통해 경사 계산을 작게 분해 후 결합하여 최종 기울기를 얻는 프로세스a 역전파는 신경망에서 사용할 가중치 계산에 필요한 기울기를 계산하기 위해 인공 신경망에서 사용하는 방법입니다. 네트워크 가중치에 대한 손실 함수의 기울기를 계산하기 위해 체인 규칙을 사용합니다. 목적 역전파의 목적은 네트워크의 가중치를 조정하여 손실 함수를 최소화하는 것입니다. 가중치에 대한 손실 함수의 기울기를 계산한 다음 이 기울기를 사용하여 손실을 줄이는 방향으로 가중치를 업데이트합니다. 사용: 역전파는 신경망의 훈련 단계에서 사용됩니다. Autograd Autograd는 Tensor의 모든 작업을 자동으로 구분하는 PyTorch 패키지입니다. 이것은 실행.. AI 2023. 7. 18. @Transactional @Transactional 어노테이션은 Spring에서 데이터베이스 트랜잭션의 범위를 정의하기 위해 사용됩니다 이 어노테이션은 메서드(또는 클래스)를 트랜잭션 내에서 실행되도록 표시합니다. @Transactional 어노테이션은 클래스 수준, 메서드 수준 또는 둘 다에 적용할 수 있습니다. 클래스 수준에 적용하면 해당 클래스 내의 모든 메서드에 대한 기본 트랜잭션 동작이 설정됩니다. 트랜잭션 전파 트랜잭션 전파는 한 메서드에서 다른 메서드를 호출할 때 트랜잭션 동작이 어떻게 전파되는지를 정의합니다. 스프링은 @Transactional 어노테이션의 propagation 속성을 통해 다양한 전파 유형을 지원합니다. 일반적인 전파 유형은 다음과 같습니다: REQUIRED 메서드는 트랜잭션 내에서 실행되어야 합.. DEV/Java 2023. 7. 18. 이전 1 ··· 11 12 13 14 15 16 17 ··· 49 다음