[24.07.04] 내일배움캠프 일차 JAVA TIL - CS 공부하기
2024. 7. 8. 09:53ㆍT.I.L
오늘 한 일
- Web 강의 수강 - 스탠다드 이론 (Nginx)
- Web 강의 수강 - Redis
github에 push 된 commit 삭제하기
1. git log // 삭제할 commit 내역 찾기 2. git reset // commit 삭제하기 - 최근의 commit을 삭제하고 싶을 땐 git reset HEAD^ - 최근의 n개의 commi을 삭제하고싶을땐 git reset HEAD~n 3. git push -f origin "branch name" // github에 commit 삭제 반영 |
- 필터와 AOP:
- 필터: 웹 애플리케이션에서 요청과 응답을 가로채서 처리할 수 있는 기능입니다. 주로 인증, 로깅, 인코딩 등의 작업에 사용됩니다.
- AOP(Aspect-Oriented Programming): 관심사의 분리를 통해 코드의 중복을 줄이고 유지 보수를 용이하게 하는 프로그래밍 패러다임입니다. 스프링에서는 주로 트랜잭션 관리, 로깅, 보안 등의 횡단 관심사를 처리할 때 사용됩니다.
- 디버그 모드:
- 디버그 모드는 코드 실행 중에 변수 값, 함수 호출, 스택 트레이스를 확인하며 문제를 찾아내고 수정하는 데 사용됩니다. 디버거를 통해 프로그램 실행을 중단하고 단계별로 실행할 수 있습니다.
- HTTP에 대해 설명:
- HTTP(HyperText Transfer Protocol)는 클라이언트와 서버 간의 요청과 응답을 주고받기 위한 프로토콜입니다. 주로 웹 브라우저와 웹 서버 간의 통신에 사용되며, 상태 코드와 메서드(GET, POST, PUT, DELETE 등)를 통해 다양한 요청을 처리합니다.
- 버블 정렬 및 분할 정복:
- 버블 정렬: 인접한 두 요소를 비교하여 정렬하는 단순한 정렬 알고리즘입니다. 시간 복잡도는 O(n^2)입니다.
- 분할 정복: 문제를 작은 문제로 나누어 해결한 후, 결과를 합쳐서 원래 문제를 해결하는 알고리즘 설계 기법입니다. 대표적인 예로 퀵 정렬과 병합 정렬이 있습니다.
- 요청보다 필터가 먼저 실행되는 원리:
- 필터는 서블릿 컨테이너에서 요청을 처리하기 전에 실행됩니다. 이는 요청을 사전 처리하거나, 응답을 후처리하는 데 유용합니다.
- Spring MVC
- 서블릿 필터(Servlet Filter):
- 서블릿 필터는 자바 웹 애플리케이션에서 요청과 응답을 가로채고 처리하는 데 사용됩니다.
- 필터는 웹 애플리케이션에 대한 모든 요청을 가로채고, 요청을 처리하기 전에 전처리 작업을 수행할 수 있습니다.
- 필터는 web.xml 파일이나 @WebFilter 어노테이션을 통해 설정됩니다.
- 서블릿(DispatcherServlet):
- 서블릿은 클라이언트 요청을 처리하고 적절한 응답을 생성하는 데 사용됩니다.
- Spring MVC에서는 DispatcherServlet이 중심 서블릿으로 작동하며, 요청을 적절한 컨트롤러로 라우팅합니다.
- 클라이언트 요청 -> 필터 실행 -> DispatcherServlet 실행 -> 응답 필터링
- 서블릿 필터(Servlet Filter):
- 세션/쿠키:
- 세션: 서버에 저장되는 사용자 정보로, 사용자별 상태를 유지하는 데 사용됩니다. 세션 ID를 통해 클라이언트를 식별합니다.
- 쿠키: 클라이언트에 저장되는 작은 데이터 조각으로, 서버와 클라이언트 간의 상태를 유지하는 데 사용됩니다.
- HTTP 상태 코드:
- 200: OK, 404: Not Found, 500: Internal Server Error 정도는 기억해두기
- JSP ORM 영속성이 뭐죠?:
- JSP: Java Server Pages는 동적인 웹 페이지를 만들기 위한 기술입니다.
- ORM(Object-Relational Mapping): 객체 지향 프로그래밍 언어를 사용해 관계형 데이터베이스를 조작하는 기술
- 영속성: 데이터의 생명주기를 관리하는 것을 의미하며, 데이터가 메모리에서 사라지지 않고 영구적으로 저장되는 것을 보장합니다. (데이터베이스와 객체 매핑을 이용하여 데이터를 효율적으로 사용할 수 있는 속성임)
- 프로세스와 쓰레드의 차이점:
- 프로세스: 실행 중인 프로그램의 인스턴스입니다. 각각 독립된 메모리 공간을 가집니다.
- 쓰레드: 프로세스 내에서 실행되는 작은 단위입니다. 같은 메모리 공간을 공유합니다. 흐름이라고 볼 수 있다.
- 추가로 멀티 쓰레드 등의 용어 정리해두기
- 알고리즘의 종류:
- 다양한 알고리즘이 있습니다. 예를 들어, 정렬 알고리즘(퀵 정렬, 병합 정렬), 탐색 알고리즘(이진 탐색, DFS, BFS) 등이 있습니다.
- 무슨 자료구조가 있는지:
- 배열, 링크드 리스트, 스택, 큐, 트리, 그래프, 해시 테이블 등 다양한 자료구조가 있습니다.
- 왜 시큐리티 썼는지:
- 애플리케이션의 인증과 인가를 처리하고 보안을 강화하기 위해 Spring Security를 사용했습니다.
- 여기서 왜 인증 인가를 처리하는 다양한 방식 중 spring security인지 설명하기
- 리눅스의 명령어 종류 :
- ls, cd, cp, mv, rm, grep, find, chmod, chown, ps, top, kill 등 다양한 리눅스 명령어의 기능 알아두기
- 형상관리 방법:
- Git을 사용해 소스 코드의 버전 관리를 하고, 브랜치를 통해 협업 및 병합 작업을 수행합니다.
- Pull request, issue, commit 컨벤션을 정하고, merge시 충분한 코드리뷰를 진행합니다.
- 깃 명령어 :
- git init, git clone, git add, git commit, git push, git pull, git merge, git branch, git checkout 등을 사용해 본 경험이 있습니다.
- 커밋 메시지를 수정하기 위해 amend 명령어로 , 직접 텍스트 편집기를 실행시켰습니다.
-
git commit --amend
- ACID 내가 말해서 꼬리질문:
- ACID는 데이터베이스 트랜잭션의 4가지 속성(Atomicity, Consistency, Isolation, Durability)을 의미합니다.
- 정처기 프로젝트에 실제로 써본 경험:
- 프로그램 관리, 데이터 정규화, 소프트웨어 생명주기, RESTful 서비스
- 코딩시 로그 어캐 사용했는지:
- Log4j, SLF4J 등을 사용해 애플리케이션 로그를 기록하고 분석했습니다.
- 로그 메시지를 사용하여 데이터가 잘 전달되었는지, 오류가 발생하지는 않는지 확인합니다.
마인크래프트 - 포트포워딩 원리
간단히 말하자면 포트(Port)를 전달(Forwarding)해주는 것
특정 포트로 들어오는 데이터 패킷을 다른 포트로 바꾸어 전송해주는 작업이다.
포트포워딩은 공통적으로 사설(내부) IP, 내부 포트, 외부 포트, 프로토콜을 입력
https://shyunku.tistory.com/87

드론 동아리에서 아듀이노로 전자 시계 만든 것
'T.I.L' 카테고리의 다른 글
[24.08.07] 내일배움캠프 최종 프로젝트 JAVA TIL - 취업 준비 발제 및 생각 정리 (0) | 2024.08.07 |
---|---|
[24.07.16] 내일배움캠프 일차 JAVA TIL - 깃허브 오픈소스로 공부하기 (0) | 2024.07.16 |
[24.07.03] 내일배움캠프 일차 JAVA TIL - AOP (0) | 2024.07.05 |
[24.07.02] 내일배움캠프 일차 JAVA TIL - Docker (0) | 2024.07.02 |
[24.07.01] 내일배움캠프 일차 JAVA TIL - 모의 면접 준비 (0) | 2024.07.01 |