반응형

분류 전체보기 287

태태개발일지(멀티스레딩 java)

멀티스레딩을 위한 간단한 운영체제 지식 형편없는 응답성: - 요청을 했는데 응답이 오지 않는 경우 ex) 만일 한 사람이 대량으로 구매하려는 상황이면 다른 사람은 그것을 기다려야하낟. 멀티스레딩은 이것을 해결해 줄 수 있다. - 멀티테스킹 병행성 : 동시에 여러가지 어플리케이션이 실행되고 있다고 느끼는 것. 성능면: 코어가 하나라도 여러가지의 어플리케이션이 실행되고있다는 것을 느낄 수 있어 좋다. (기계의 대수를 줄일 수 있다) 스레딩: 동작방식 - 컴퓨터를 키면 (운영체제) 라는 프로그램이 디스크 메모리에 로딩된다. -> 하드웨어 cpu 우리와의 상호작용을 조절한다. 사용자가 어플리케이션을 실행하면 운영체제는 디스크에 있던 프로그램을 메모리로 가져와 프로그램의 인스턴스를 생성한다. 이를(프로세스라고한다..

JAVA 2023.10.18

태태개발일지(소켓 통신)

소캣통신 서버와 유저가 데이터를 주고받으려면 -> http 요청을 통해서 클라이언트: 데이터줘. 서버: 오케이. 실시간 리소스를 주어야할 때, 클라이언트: 내가 계속 요청을 해줘야해? 너가 그냥 알아서 보내주면 되잖아. 서버: 그럼 내가 server-sent event나 Web socket을 사용해볼게 server - sent event -> http통신을 종료안하고 계속 유지(단방향) WebSocket -> http요청을 보내서 클라이언트: 오늘부터 웹소켓으로 할가? 서버: 좋아 그럼 websocket으로 업그레이드 해놓을게 1. 서버소켓에 클라이언트의 주소와, 포트를 바인딩해준다. 2. 무한 루프를 돌면서 클라이언트의 접속을 대기한다. 3. 클라이언트가 인지 되었을 경우 인풋스트림과 아웃풋 스트림을 ..

CS 2023.10.11

태태개발일지(MSA)

MSA 아키텍쳐: 기능단위로 나누어 개발 하는 아키텍쳐이다. 이와 반대되는 개념은 monolithic 아키텍쳐인데, 하나에 통합하여 개발하는 아키텍쳐이다. 그러므로 MSA아키텍쳐를 사용하는 경우 API단위로 나누어야 하고, API게이트를 통해 분산하는 것이다. MSA가 왜 인기가 있을까???1.     - monolithic방식은 너무 타이트하게 결합이 되어있기 때문에 새로운 결합 추가시 어려움이있다.  - MSA는 각각 기능마다 분리가 되어있어서 느스한 결합을 통해 구성되어있기 때문에 새로운 기능이나, 업데이트가 쉽다. 2.       monolithic는 서비스 중 하나가 장애가 발생했을 경우 다른 서비스의 장애로 전파가 가능성이 높지만, MSA는 다 분리되어있기 때문에 장애가 발생한다 하더라도 발생..

MSA 2023.10.10

태태개발일지(데이터베이스 설계단계 ERD)

1. 요구사항 분석 1. 데이터베이스를 사용할 주요 사용자의 범위를 결정 2. 사용자가 수행하는 업무를 분석 3. 수집된 요구 사항 대한 분석 결과를 요구 사항 명세서로 2. 개념적 설계(*) : E-R 다이어그램을 통해 요구사항을 표시 1. 개체 추출, 각 개체의 주요 속성과 키 속성 선별 개체 : 저장할 만한 가치가 있는 중요한 데이터를 가진 사람이나 사물 등 2. 개체 간의 관계 설정 외래키를 사용하여 관계를 설정 1:1, 1:n , m:n 3. E-R 다이어그램 작성 3. 논리적 설계 4. 물리적 설계 개체 (Entity) 사각형이 두개면 weak entity라고 한다. 속성들은 타원으로 표현한다. 동그라미 두개는 여러개의 속성을 준비한다를 의미한다. 관계 마름모로 표현한다. 마름모가 두개에 겹쳐..

DATABASE 2023.10.10

태태개발일지(크롤링)

python을 이용하여 웹 크롤링을 하는 것을 실습해 보았는데 생각보다 간단해서 깜짝놀랐다.request 와 BeatifulSoup이라는 라이브러리를 통해 실습해 보았는데request 라이브러리를 통해서 웹에있는 정보를 가져온후 BeautifulSoup라이브러리를 통해서 html을 파싱하고soup 명령어를 통해 제목을 가져오는 실습 이였다.Requests:     http요청을 통해서 html소스를 가져오는 용도로 사용. BeautifulSoup:     request가져온 html코드를 ptyhon이 이해하는 구조로 바꿔주는 라이브러리 ect) selenium,urllib p라는 태그와 , p태그의 텍스트를 가져오는 문단이고마지막은 html 구조를 이쁘게 찍어주는 prettify 메서드이다. 다음은 j..

태태개발일지(Database)

관계형 데이터 모델 데이터 모델링 - 현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 과정 - 데이터베이스 설계의 핵심과정 개념적 데이터 모델 현실세계를 추상화하여 중요 데이터를 개념 세계로 추출해 가는 과정 ER다이어그램 - entity와 관계를 나타낸 모델(결과물로 개념적 데이터 모델) 논리적 데이터 모델링 - 개념 세계의 데이터를 데이터베이스가 저장할 구조로 변환하는 과정 - 결과물로 관계 데이터 모델 물리적 데이터 모델링 - 논리 데이터 모델이 실제 데이터베이스에 저장소에 저장되는 모델 릴레이션 = 테이블 구조 애트리뷰트(속성 or 컬럼) 도메인(데이터 타입) 릴레이션 스키마 -> 속성의 이름과 속성의 타입 행 -> 튜플, 레코드 값 튜플의 집합 : 릴레이션 인스턴스 튜플-> 동..

DATABASE 2023.09.27

태태개발일지(데이터베이스)

데이터베이스 - 특정 조직의 여러 사용자가 공유하여 사용할 수 있도록 통합해서 저장한 운영 데이터의 집합 데이터베이스 예제 -은행: 계좌정보, 입출금 내역 데이터베이스 특징 - 실시간 접근 가능 - 계속적인 변화 - 동시 공유가 가능 - 저장된 주소가 아닌 내용으로 참조 가능 데이터의 유형 - 정형 데이터(엑셀의 스프레드시트, 관계데이터베이스 테이블) - 반정형 데이터(self-describing data: HTML,XML,JSON) - 비정형 데이터(text,멀티미디어 데이터) 파일시스템을 사용했을 경우 - 동시성 제공이 어려움 -> 여러 사용자가 동시에 접근할 때 문제 해결에 어려움 - 원자성 제공이 어려움 -> 파일 변경 중에 시스템 장애가 발생했을 때 처리 어려움 - 보안 제공 이슈 -> 사용자 ..

DATABASE 2023.09.26

태태개발일지(index)

@Entity @Table(name = "user_table", indexes = { @Index(name = "idx_name", columnList = "name") }) //@Table(name = "user_table") 데이터베이스에서 index를 만들면 B+ Tree 구조로 저장이되고, 인덱스테이블을 사용하면 insert, update,delete가 있어서 추가 쿼리가 생기지 않는 이상, 조회상태에서는 성능이 향상 된다고 알 게 되었다. 또 궁금한 것은 못참는 내가 Database에서 userTable을 만들고 안에 name이라는 속성으로 index를 만들고, spring과 연결 시켜서 Jmeter로 성능을 실험해보았다. 결과: 유저 데이터 30000개 정도는 속도차이가 별로 크게 나지않는다...

DATABASE 2023.09.24

태태개발일지(CS지식)

1. Spring과 Spring boot의 차이점 - Spring과 Spring boot는 모두 스프링 프레임워크를 기반으로 한 자바 웹 개발 프레임 워크읍니다. 둘 간에는 몇 가지 차이점이 있습니다. - Spring은 개발자가 직접 설정 파일을 작성하고, 스프링 컨테이너를 구성하고, 필요한 빈 객체를 등록하고, 빈 객체간의 의존성을 설정해야하지만, boot는 프로젝트의 설정과 라이브러리 의존성을 자동으로 처리해 주는 기능을 제공하고 Jar파일을 만들 수 있다. - MVC,JPA,Security등의 기능을 자동으로 설정해준다. Actuator라는 모니터링 모니터링 기능 2. 스크립트 언어와 컴파일 언어의 차이 - 이미 기계어로 번역된 파일을 컴퓨터가 실행하므로, 스크립트 언어에 비해 빠르고, 소스코드에 ..

CS 2023.09.21
반응형