Backend
Computer Science
[Data Structure] 꼭 알아야 할 자료구조와 알고리즘 테이블
[Data Structure] 꼭 알아야 할 자료구조와 알고리즘 테이블
어제자로 학기로부터 해방되어, 평소 꼭 정복해보고 싶었던 자료구조, 그리고 알고리즘에 대해 약간의 정리를 해볼까 합니다. 일종의 Cheatsheet인데요, 나중엔 머릿속에 다 들어와 있겠죠? 코딩테스트 풀이 때, 시간 초과와 메모리 초과로부터 좀 해방될 수 있었으면 좋겠네요. Data Structures Data Structure Purpose Time Complexity (Avg)Space Complexity Additional Notes Array Stores elements of the same type in contiguous memory locations. Access: O(1), Search: O(n), Insertion: O(n), Deletion: O(n) O(n) Fixed size, e..
[DB] SQLd 51회차 합!
[DB] SQLd 51회차 합!
Database
2023.12.08 16:24
데이터베이스 과목을 열심히 들은 보람이 있네요.
[AI] 드디어 이해한 신경망, 퍼셉트론, 다층 퍼셉트론, RBF 망
[AI] 드디어 이해한 신경망, 퍼셉트론, 다층 퍼셉트론, RBF 망
Artificial Intelligence
2023.11.27 01:46
이해하며 개인 노션에 작성한 글인데, 경어체를 쓸 겨를이 없군요! 추후 수정하도록 하겠습니다. 우선, s값을 계산해보자. 입력값 Xi * Wi(가중치)(i는 1부터 끝까지) + 1 * W0(bias) = s 구한 값을 f(), 즉 전달 함수(=활성화 함수)에 집어 넣는다. 여기서는, s가 특정값 이상이면 1이고, 아니면 0이다. 생물에서, 역치를 넘으면 반응하는 것 과 비슷하다. 그럼, OR 연산을 하는 퍼셉트론을 구해보자. s는 어떻게 계산될까? x1 + x2 + (-0.5) = s 일 것이고, 그럼 만약 x1 = 1, x2 = 0 이면? 0.5가 나오고, 0을 넘으니 f(s) = 1 일 것이다. 그럼 만약 x1 = 0, x2 = 1 이면? 마찬가지로 0.5가 나오고, 0을 넘으니 f(s) = 1 일 ..
[AI] 군집화 알고리즘과 단순 베이즈 분류기
[AI] 군집화 알고리즘과 단순 베이즈 분류기
Artificial Intelligence
2023.11.27 01:32
우선 군집화가 뭐였나요? 유사한 데이터끼리 모으는 것을 군집화 라고 합니다. 군집화는 다음과 같은 종류가 있습니다. 계층적 군집화: 군집들이 계층적인 구조를 가지도록 합니다. 병합형 계층적 군집화 하나의 데이터로 출발하여, 가까운 것을 결합해 나가며 계층구조를 생성합니다. Bottom-Up 방식이라고 볼 수 있습니다. 분리형 계층적 군집화 전체 데이터를 가지는 하나의 군집에서 출발하여, 유사성을 바탕으로 군집을 분리합니다. 분할 군집화: 계층 구조를 맏늘지 않고, 전체 데이터를 유사한 것들끼리 나눠서 묶습니다. ex) K-means 알고리즘 분산값 V를 최소로 하는 점의 집합을 찾는 것이 목표입니다. 1. 초기에 군집의 중심을 임의로 설정해줍니다. (K개 설정) 2. 모든 점들에 대해, 가장 가까운 U(..
[AI] Decision Tree, 엔트로피, 정보 이득, 정보이득비, 지니 지수
[AI] Decision Tree, 엔트로피, 정보 이득, 정보이득비, 지니 지수
Artificial Intelligence
2023.11.25 11:23
결정 트리는, 트리 형태로 의사결정 지식을 표현하는 것을 말합니다. 위의 예시는, 날씨가 어떨 때 테니스를 치러 갈까? 를 결정하는 의사결정 트리인데요, 쉽게 말해 Internal Node는, 기상 상황들을 말하는 것이고, Edge는 그 기상 상황이 어떤지, 즉 속성값을 나타냅니다. 그리고 마지막 Terminal node는, 부류. 여기서는 Yes or No를 나타냅니다. 결정 트리 알고리즘을 구성하는 것은, - 우선 하나의 노드로 구성된 트리에서 시작합니다. 1. 분할 속성을 선택하고, 2. 속성값에 따라서 서브트리를 확장 및 생성하고, 3. 데이터를 속성값에 따라 분배합니다. 이 1-2-3 과정을 반복합니다. 우리는 일반화 성능이 우수한 최대한 간단한 트리를 원합니다. 방금, 결정 트리 알고리즘을 구..
Trial-and-error
2024.3월, OPIc IH 후기
동아리 및 기타 활동2024.03.21 15:292024.3월, OPIc IH 후기

마지막으로 치른 어학 시험은 토익으로, 약 3년 전이었다. 정확히 기억은 안나지만, 885 였던 것 같다. 아무튼, 삼성전자 지원 조건에 스피킹 점수가 필수적이길래 시험을 응시해야 했다. 스피킹 시험은 토익 스피킹과 오픽이 있는데, 간략히 알아보니 토익 스피킹: Script를 외워서 가는 자에게 유리. 오픽: 프리토킹이 가능한 자에게 유리. 이러한 느낌이었다. 고민도 없이 오픽을 신청했다. 시험 일정이 굉장히 촘촘하게 있었고, 2일 뒤 시험에 응시 가능하길래 바로 신청했다. 시험 장소는 시청역 인근 오픽 센터였는데, 대학 강의실 하나만한 곳에 컴퓨터가 따닥따닥 붙어있고... 그냥 헤드폰 끼고 말하는 방식이었다. 앞, 옆 사람이 말하는 것 다 들린다. 나는 최소한의 방음부스? 독립적인 공간은 있을 줄 알았..

2024 1회 정보처리기사 필기 합격
동아리 및 기타 활동2024.03.21 15:162024 1회 정보처리기사 필기 합격

사실 남들 다 따길래 그냥 시험치러 가봤다. 1학기 개강 직전에 보러갔고, 인턴을 하고 있었기 때문에 따로 공부할 시간도 없었다. https://www.kinz.kr/subject/7872 정보처리기사 객관식 필기 기출문제 CBT 목록 - 킨즈 www.kinz.kr 위 사이트에서 2022년 기출 2회분을 풀어보고, 10문제 내외로 틀리길래 그냥 응시하러 갔다. 3학년 1학기에 4학년 소프트웨어공학 수업을 먼저 들었는데, 이 과목 내용이 상당히 도움이 되었고, 소프트웨어 엔지니어로 인턴생활을 하며 배운 많은 부분도 도움이 되었다. 아마 전공자이고, 개발 경험이 좀 있고, 소프트웨어공학 수업을 열심히 들었다면 별다른 노력 없이 합격할 것이라 예상한다.

Auto-Increment(    @GeneratedValue(strategy = GenerationType.IDENTITY))를 위한 DB 수정
Trial-and-error2024.02.16 23:59Auto-Increment( @GeneratedValue(strategy = GenerationType.IDENTITY))를 위한 DB 수정

더미데이터 위에도 회원가입이 가능해야 하는데, 초창기 엔티티를 만들 때 미처 고려해주지 못했다. 이를 위해 단순히 @GeneratedValue(strategy = GenerationType.IDENTITY) 만 붙여줬는데, DB에 반영되지 않는 문제가 있었다. 수정 이후라 잘 반영되어 있지만, Auto Increment에 체크를 해줘도 다른 테이블과 제약조건이 걸린 탓에 반영이 안되는 상황. 이를 위해, 잠시 DB의 외래 키 제약조건을 비활성화 하고, 다시 활성화 해주는 작업이 필요했다. SET foreign_key_checks = 0; alter table member modify id bigint auto_increment; alter table member auto_increment = 1; SET..

비동기 메서드 테스트 코드 작성 시, DB 관련 유의점.
Trial-and-error2024.02.05 17:37비동기 메서드 테스트 코드 작성 시, DB 관련 유의점.

https://20180913.tistory.com/70 [Java Spring] 비동기 메서드에 대한 테스트코드 작성법 @SpringBootTest @ActiveProfiles("api-test") public class ActionServiceTest { @Autowired private ActionApiRepository actionApiRepository; @Autowired private ActionService actionService; // ThreadPoolTaskExecutor 빈을 생성하여, 비동기로 실행되 20180913.tistory.com @Async 어노테이션이 붙은 비동기 메서드로 DB에 데이터를 생성 혹은 삭제하는 메서드가 있었다. 이걸 테스트를 하는데, 하나의 클래스 안에서..

Trial-and-error2024.02.01 20:35[Java Spring] 비동기 메서드에 대한 테스트코드 작성법

@SpringBootTest @ActiveProfiles("api-test") public class ActionServiceTest { @Autowired private ActionApiRepository actionApiRepository; @Autowired private ActionService actionService; // ThreadPoolTaskExecutor 빈을 생성하여, 비동기로 실행되는 메소드가 실행되기 전에 테스트가 종료되는 것을 방지한다. @Autowired private ThreadPoolTaskExecutor threadPoolTaskExecutor; @Test public void testWhenFollowAction() throws InterruptedException {..

What
image