분류 전체보기

· OS
요약: 컨텍스트 스위칭은 운영 체제에서 프로세스나 쓰레드 간 전환을 가능하게 하는 과정입니다. 이 글에서는 컨텍스트 스위칭의 개념, 원리, 그리고 그 과정에서 발생하는 오버헤드에 대해 설명합니다. 1. 컨텍스트 스위칭(Context Switching)이란? 컨텍스트 스위칭은 프로세스나 쓰레드의 실행 상태를 저장하고 다른 프로세스나 쓰레드의 상태를 복원하는 과정입니다. 이 과정을 통해 여러 프로세스나 쓰레드가 동시에 실행되는 것처럼 보이게 합니다. 컨텍스트 스위칭은 운영 체제에서 멀티태스킹을 가능하게 하는 중요한 기술입니다. 2. 컨텍스트 스위칭의 원리 컨텍스트 스위칭은 다음 단계를 거쳐 진행됩니다: 현재 실행 중인 프로세스나 쓰레드의 상태를 저장합니다. 스케줄러가 다음 실행할 프로세스나 쓰레드를 결정합니..
· spring
회사에서도 springboot를 하고 있지만, 면접에서 springboot를 왜 사용하냐를 물어본다면 회사에서 사용해서요 라고 말하기에는 부적절한 답변이 될 거 같기도 하고, 이 토픽에 대해서 한 번 쯤은 고민할 필요가 있어보여서 글을 써 본다. 내가 생각하는 spring framework를 사용한 이유는 다음과 같다. 1. DI(의존성 주입) 기반으로 해서 객체지향 프로그래밍을 할 수 있다. 2. AOP를 통해서 트랜젝션 관리, 로깅, 보안에 대한 기능을 쉽게 구현이 가능하다. 3. 대형 프로젝트를 할 시에 유지보수 및 확장성이 높은 코드를 집어넣기 용이한 부분이 있다. 4. MVC 패턴으로 개발가능하다. 5. 다양한 라이브러리와 프레임워크를 연동해서 개발가능하다. (gradle, maven)
· spring
저번에 이어서 mockito에 대해 설명을 할까 한다. 저번 junit 테스트 했을 때는 일일히 게시판쓰기를 통해서 db에 데이터가 추가가 되고 그걸가지고 테스트를 하였는데, 매번 그렇게 하면 번거로운 부분도 있고, 상황에 따라서 데이터를 맞춰야하는 부분도 생긴다. mockito를 이용하면, 굳이 맞출려고 할 필요없이 어떤 예측한 값이 나온다고 가정을 해서 개발자가 정할 수 있게 되서, 테스트를 하는데 좀 더 편리하게 할 수 있는 장점을 가진다. 일단 mockito 정의를 보면? Mockito란 가짜(Mock) 객체를 지원하는 테스트 프레임워크 @ExtendWith(MockitoExtension.class) 어노테이션을 테스트 클래스에 붙여 사용할 수 있다. 유닛테스트를 할 때, 위의 Mockito를 통..
· spring
회사에서 설계/개발을 하고 테스트를 기존에 만들어진 웹 페이지로만 진행했기 떄문에, 군데군데 숨어있는 버그를 찾지 못하고 짜짤짜잘한 이슈들이 나오는 경우가 있었다. 최근에 유튜브에서 더 나은 개발자로 성장하기 위해서는 테스트코드를 잘 작성하라는 말이 나오면서 이번에 springboot에 존재하는 junit에 대해 다뤄볼까 한다. Junit이란? - Java에서 단위테스트를 지원해주는 프레임워크 Junit 문법 @BeforeClass : 테스트 시작시 1번만 호출 @Before : 테스트 시작전 호출 @After : 테스트 완료시 호출 @AfterClass : 모든 테스트 완료시 1번 호출 Junit 간단소스 import org.junit.After; import org.junit.Before; impor..
· spring
AOP이란? AOP(Aspect Orient Programming), 관점지향 프로그래밍이라고 하며, 공통된 영역와 비즈니스 로직을 구분하고 필요한 곳에 비즈니스 로직만 구현하겠끔 집중하게 도와준다. 장점 1. 코드 중복 줄어듬 2. 공통된 영역과 비즈니스 로직이 구분돼 개발이 좀더 용이해짐 용도 1. 로깅 2. DB 트랜젝션 3. vaildation ... 기본적인 문법 JoinPoint: 현재 실행되고 있는 패키지 영역 PointCut: 어떤 패키지 JoinPoint를 사용할 것인지를 결정 실행하고 있는 모듈을 사용자가 원하는 범위까지 조절할 수 있다. Advice: 각 JoinPoint에 삽입되어져 동작할 수 있는 코드 Before : 조인포인트 전에 실행 AfterReturning : 조인포인트에..
· spring
SpringBoot / Gradle 기반으로 설정되었고, 버젼은 다음과 같습니다. Springboot Version 5.3.5 gradle Version 6.8.3 build.gradle은 다음과 같이 포함해주시면 되겠습니다. dependencies { ~ compile("org.slf4j:slf4j-api:1.7.7") compile('ch.qos.logback:logback-classic:1.1.2') ~ } 그 다음에는 /src/main/resource 경로에 'logback-spring.xml' 파일을 만들고 다음과 같이 작성을 합니다. %d{yyyy-MM-dd HH:mm:ss.SSS}[%-5level] : %msg%n INFO test.txt test-%d{yyyy-MM-dd}.%i.txt 10..
· spring
회사서 자바소스를 k8s 파드에 올리게 되면서 디펜더시 관련해서 문제가 발생해 애를 먹었기에 공부가 필요하다고 생각이 들었다. 그래서 이번 기회에 정확하게 정의를 정확하게 인지하기 위해 블로그에 정리를 할까 한다. plugins { id 'org.springframework.boot' version '2.4.3' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } group = 'com.test' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' repositories { mavenCentral() } dependencies { implementation 'org.springfr..
· 기타
1. 동기(Synchronous) 요청과 동시에 응답이 오는 경우를 의미한다. 요청과 응답은 거의 동시에 일어난다 보면 됨 요청과 응답에 대한 작업단위를 트렌젝션(Transcation) 이라 부른다. 요청을 하는 데 도중에 오류가 발생하면 응답값을 받을 수 없는 상황이기에 동기화가 이루어 질 수 없음 예) 사이트 접속, 카드결제 사이트 접속을 하는데 도중에 오류가 걸리면 응답값을 받을 수 없는 상황이기에 페이지 화면을 제대로 못 봄 2. 비동기(Asynchronous) 동기와 반대로 요청과 동시에 응답이 바로 오지 않음 요청을 한 후 응답이 오길 기다리지 않고, 다른 요청을 할 수 있기 때문에 자원을 효율적으로 쓸 수 있음 예) 이메일 상대방에게 이메일을 보낼지라도 해당 회신이 즉시 오지 않을 수 있다.
· JPA
JPA이란? RDB(Relational Database)와 OOP 객체 사이의 불일치에서 오는 패러다임을 해결하기 위해 자바는 ORM(Object-Relational Mapping) 기술을 만들어 냈다. RDB는 우리가 흔히 쓰는 Mysql이나 Oracle와 같은 관계형 데이터베이스를 의미하며 ORM은 RDB를 매핑하는 역할을 함으로써 기본적인 쿼리문 같은 경우에는 개발자가 직접 작성하지 않아도 된다. 장점 객체지향적으로 관리가 되기에 비즈니스 로직에만 집중할 수 있기 때문에 생산성에 강점을 가진다. SQL로 직접 작성하지 않고, ORM 프레임워크가 대신 엔티티 필드가 되는 객체를 다르기 떄문에 유지보수가 간결하다. 복잡한 프로젝트 같은 경우에 Oracle, Mysql, Mssql 서로 같은 데이터베이스..
· spring
스프링 시큐리티를 통해서 회원가입부터 시작해서 로그인 & 로그아웃을 진행할 것이다. 1. 의존성 추가 implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5' 기본적으로 시큐리티를 사용하기 위해서는 'org.springframework.boot:spring-boot-starter-security' 를 추가시켜야 하며, 필자 같은 경우에는 시큐리티 관련해서 Thymeleaf를 쓸 것이기 때문에 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5'를 추가하였다. 2. ..
개발만파볼까
'분류 전체보기' 카테고리의 글 목록 (8 Page)