전체 글101 JAVA 1.8의 가장 큰 변화 - 람다 표현식과 스트림 API Java 1.8 버전의 가장 큰 차이점은 람다 표현식(Lambda Expressions) 과 스트림 API(Stream API) 의 도입이다.이러한 람다와 스트림을 이용한 표현식을 통해 JAVA를 함수형 프로그래밍과 병렬 프로그래밍을 지원하는 언어로 변화시킬수 있었다.Java 1.8 버전의 등장이후 개발자들은 더 간결하고 직관적인 코드를 작성할 수 있게 되었으며, 병렬 처리와 함수형 스타일을 통해 성능과 가독성을 동시에 향상시킬 수 있었어 코드의 효율성, 유지보수성, 가독성 측면에서 큰 진전을 이루게 되었다. 람다 표현식 람다 표현식이란 JAVA에서 익명함수(Anonymous Function)을 구현하는 방법을 제공하는 표현식이다.익명함수란 말그대로 '이름이 없는 함수'이며 JAVA의 익명클래스를 통해 .. 2025. 3. 14. Spring의 멀티스레드와 Blocking I/O Spring Framework는 기본적으로 Blocking I/O 방식으로 사용자의 요청을 처리한다.Blocking I/O란 입출력 작업(Input/Output)시에 동기식으로 해당 작업이 완료될때까지 해당 스레드가 대기하고있는 방식이다.스프링에서의 Blocking I/O 작업이란 파일 I/O, 데이터베이스 I/O , 네트워크 I/O와 같은 작업에서Blocking I/O 방식을 사용한다. 그런데, 스프링은 Blocking I/O방식으로 어떻게 다중 사용자의 요청을 처리할까? Tomcat의 멀티스레드 + Spring Blocking I/O 방식 Spring 프레임워크가 Blocking I/O 방식으로 사용자의 요청을 처리한다면, 예를 들어서 10명의 사용자가 요청을 보내오면Spring은 순차적으로 10명.. 2025. 3. 12. [리액트] 컴포넌트간 데이터 전송방식 리액트에서 props를 통해 state를 상위컴포넌트에서 하위컴포넌트로 전달하는 방식은 가장 보편적으로 많이 사용하는 방법이다.그러나 이러한 상위 컴포넌트에서 하위 컴포넌트로 데이터를 전달하는 경우는 주로 상위 컴포넌트가 상태를 관리하고, 그 상태를 하위 컴포넌트에서 활용할 때 사용되어야한다. 쇼핑몰 웹 사이트를 리액트로 개발하는 상황에서 예를 들어보면, function Content(){ function getProducts(category){ axios .get(`product/${category.toLowerCase()}`) .then((response) => { console.l.. 2025. 1. 23. DB 데드락(deadlock) 해결사례 운영중인 DB에서 데드락이 발생하여 트랜잭션이 중단되는 문제가 발생하였다.해당 기능의 중요성 및 안정성을 감안하였을때, 쿼리문을 변경하거나 트랜잭션 범위와 격리수준 변경을 할수없었고 다른방법을 찾아보고있었다. 특정 작업을 처리할때, 특정 테이블을 동시다발적으로 접근하면서 데드락이 발생한것으로 보이지만,관련 로그나 모니터링 환경이 구축되어있지않은 상황에서 정확히 어떤 트랜잭션에서 어떤 작업이 문제를 일으키는지 파악할 필요가 있었다. 1. 데드락 모니터링 환경 구축하기 MSSQL은 SSMS(SQL SERVER MANAGEMENT STUDIO)라는 DB 관리도구 툴을 제공한다.사용하는 MSSQL 버전에 맞추어 SSMS를 설치한뒤, DB 커넥션을 맺어 접속한다.이후, MSSQL의 TRACE PLAG중에서 데드락.. 2024. 12. 2. 이전 1 2 3 4 ··· 26 다음