목록전체 글 (106)
공부해봅시당

아래 글을 참고하여 작성함 https://gyoogle.dev/blog/computer-language/Java/%EC%BB%B4%ED%8C%8C%EC%9D%BC%20%EA%B3%BC%EC%A0%95.html [Java] 컴파일 과정 | 👨🏻💻 Tech Interview [Java] 컴파일 과정 들어가기전 자바는 OS에 독립적인 특징을 가지고 있다. 그게 가능한 이유는 JVM(Java Vitual Machine) 덕분이다. 그렇다면 JVM(Java Vitual Machine)의 어떠한 기능 때문에, OS에 독립적으로 gyoogle.dev 자바는 OS에 독립적인 특징을 가지고 있음 그게 가능한 이유는 JVM(Java Vitual Machine) 덕분 JVM(Java Vitual Machine)의 어떠한 ..

동적 언어와 정적 언어는 각자 만의 특징과 장단점이 있음 이에 대해 알아보자 정적 언어 예) Java, C, C++ 등 동적 언어 예) Python, Ruby, JavaScript, Perl, PHP, Groovy 등 들어가기 전 컴파일 과정 소스코드를 작성하고 빌드를 하게되면 일반적으로 다음과 같은 과정을 통해 실행파일이 만들어짐 소스코드(Input) -> 전처리기 -> 컴파일러 -> 어셈블러 -> 링커 -> 실행파일(Output) 1. 전처리기: 소스코드 자체에 대한 수정 담당 2. 컴파일러: 소스코드를 어셈블리 코드로 번역 3. 어셈블러: 어셈블리 코드를 목적코드로 번역 4. 링커: 생성된 목적코드들을 링킹하여 실행파일을 만듦 컴파일타임 vs 런타임 컴파일타임: 전체 컴파일 과정과 그 이후 과정 중..

아래 링크를 참고하여 작성된 글입니다 https://leezzangmin.tistory.com/42 nGrinder + Springboot 부하 테스트 튜토리얼 개인 프로젝트를 진행하면서 스프링 어플리케이션의 성능을 측정해보고자, 네이버에서 만든 (오픈소스 + 무료 + 한글 + Java스러운 Groovy 스크립트 지원 + 자료가 그나마 많은) 부하테스트 툴 nGrinde leezzangmin.tistory.com 부하테스트는 계획, 시나리오 수립, 실제테스트, 분석, 적용 이라는 단계를 거쳐야 한다고 함 0. 설치 ngrinder 설치를 위해 아래 링크 접속 https://github.com/naver/ngrinder/releases Releases · naver/ngrinder enterprise le..

아래 링크를 참고하여 작성된 글입니다. https://velog.io/@sileeee/MYSQL-%EB%8D%94%EB%AF%B8-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%84%A3%EA%B8%B0 MYSQL 더미 데이터 넣기 성능 테스트를 진행하기 전, 좀 더 유의미한 테스트를 진행하기 위한 방법으로 가짜 데이터인 `더미테이터`를 DB에 넣어보았습니다. velog.io 저번 시간에는 프로시저를 사용해 더미 데이터를 넣음 이번에는 Mockaroo로 더미 데이터를 넣어 보겠음 아래 링크에 들어가보자 https://www.mockaroo.com/ Mockaroo - Random Data Generator and API Mocking Tool | JSON / CSV / SQL / Excel M..

아래 링크를 참고하여 작성된 글입니다. https://velog.io/@sileeee/MYSQL-%EB%8D%94%EB%AF%B8-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%84%A3%EA%B8%B0 MYSQL 더미 데이터 넣기 성능 테스트를 진행하기 전, 좀 더 유의미한 테스트를 진행하기 위한 방법으로 가짜 데이터인 `더미테이터`를 DB에 넣어보았습니다. velog.io 성능테스트 시작 전 대용량 트래픽이 발생하는 채팅 서버를 개발하며 성능 테스트에 대한 필요성을 느끼게 됨 그 전에, 유의미한 테스트를 진행하기 위해 더미데이터를 DB에 넣기로 결정함 특히 현재 진행 중인 로직 상에서 채팅 전송 및 조회, 채팅방 조회에서 병목 형상이 발생할 가능성이 있다고 판단되어 해당 부분에 대한 성능 ..
브루트 포스(Brute Force)란? - 검색 대상이 원본 문자열의 처음부터 끝까지 차례대로 순회하여 문자들을 일일이 비교하는 방식의 고지식한 알고리즘 - 비교하고자 하는 문자열과 패턴을 한 칸씩 이동하면서 비교하여 일치 여부 확인 브루트 포스 비교 과정 T:원본 문자열 / P:찾고자 하는 문자열 패턴 1. T, P 모두 첫 문자부터 비교를 시작하므로 검색 인덱스를 맨 처음 인덱스로 설정 2. 각각의 검색 인덱스부터 하나씩 문자 비교 1) 비교 문자가 같으면 T, P의 인덱스 모두 뒤로 한 칸씩 이동 2) 비교 문자가 다르면 T의 인덱스는 한 칸 뒤로 이동하고, P의 인덱스는 맨 처음 인덱스로 돌아감 3. 다시 2번 과정부터 검색이 끝날 때까지 반복 시간 복잡도와 장단점 - 시간 복잡도: O(mn) -..
스프링부트 Security가 7.0으로 업데이트되면서 변화하게 된 여러 사항들이 있어 비교를 위해 글을 작성한다. Spring Security 7.0 예시코드 @Configuration @EnableWebSecurity @RequiredArgsConstructor public class SecurityConfig { @Autowired private PrincipalOauth2UserService principalOauth2UserService; // Security 를 이용한 각종 권한 접근 경로 등 설정 @Bean protected SecurityFilterChain configure(HttpSecurity http) throws Exception { http .csrf((csrf) -> csrf.d..
mysql과 spring-boot를 docker-compose.yml을 사용하여 실행하고자 하였을 때 발생했던 문제들에 대해 기술하도록 하겠다. 문제 발생 문제는 기존에 postgresql로 잘 돌아가던 서비스를 mysql로 변경하고자 하면서 발생했다. 이번에 채팅 서버를 개발하면서 Kafka를 사용해보기로 결정한 후, 관련 래퍼런스를 찾다가 상당히 괜찮은 래퍼런스를 발견했다. 아래는 래퍼런스 깃허브 링크이다. https://github.com/ghkdqhrbals/spring-chatting-server GitHub - ghkdqhrbals/spring-chatting-server: Spring-Java 기반 채팅 및 주문 서버입니다. 현재 MSA 아키텍처로 Spring-Java 기반 채팅 및 주문 서..