본문 바로가기
728x90

TOPCIT23

SW공학 - 코드 리팩토링과 클린코드 🛠️코드 리팩토링코드 스멜가독성이 낮고 중복된 로직을 말함발생 원인 : 주석 없음, 중복 로직, 복잡한 조건 코드 리팩토링 기법메소드 정리Extract Method그룹으로 묶을 수 있는 코드의 메소드 추출Replace Parameter with Method객체가 메소드를 호출한 다음, 결과를 다른 메소드에 매개변수로 넘기고 있으면 수신자가 그 메소드를 호출하도록 하는 작업객체 간 기능 이동Extract Class두 개의 클래스가 해야할 일을 하나의 클래스가 하는 경우, 새로운 클래스를 생성해 필드와 메소드를 이전Extract Subclass어떤 클래스가 일부 인스턴스에 의해서만 사용되는 기능을 가지고 있다면, 인스턴스만 사용하는 기능을 담당하는 서브클래스를 만드는 작업🌠Extract Interface.. 2024. 11. 12.
정보보안, DB - SQL Injection 💁‍♀️Prepared Statement일반적인 Statement 사용 시 SQL Injection 공격에 취약원인 : 매번 parse부터 fetch까지 모든 과정을 수행하기 때문이다만약 SQL Injection 공격을 가하는 경우, 수정된 쿼리(공격)를 parseSQL Injection 공격웹 어플리케이션에서 입력값에 대한 유효성 검증을 하지 않을 경우, 공격자가 입력 폼 및 파라미터에 쿼리문을 조작하여 정보를 열람하거나 데이터를 조작하는 해킹 기술select문 실행 과정Prepared Statement를 사용하는 경우 효율을 높이기 위하여 parse 과정을 최초 1번만 수행하고 이후에는 생략이 가능하다최초 parse를 통한 결과 parse tree를 메모리 상에 저장해두고 필요할 때마다 사용한다반복.. 2024. 11. 12.
DB - VIEW, DCL 👁️‍🗨️DataBase VIEWView의 개념💡 뷰는 데이터베이스에서 하나 이상의 릴레이션으로부터 유도된 물리적으로 존재하지 않는 논리적 가상 테이블이다WITH CHECK OPTION뷰 생성 시 WITCH CHECK OPTION을 사용할 경우 뷰 생성 조건에 해당하는 데이터에 대해서만 INSERT, UPDATE, DELETE가 가능하도록 제한한다DCL(DATA CONTROL LANGUAGE)COMMIT하나의 트랜잭션이 성공적으로 끝났고, 데이터베이스가 일관성있는 상태에 있을 때, 하나의 트랜잭션이 끝났다라는 것을 알려주기 위해 사용하는 연산ROLLBACK하나의 트랜잭션 처리가 비정상적으로 종료되어 트랜잭션의 원자성이 깨진 경우, 트랜잭션을 처음부터 다시 시작하거나, 트랜잭션의 부분적으로만 연산된 .. 2024. 11. 12.
클라우드 컴퓨팅 - 배치 모델과 서비스 모델 ☁️클라우드 컴퓨팅배치모델과 서비스 모델로 구분됨배치 모델인프라의 위치와 운영에 따른 분류퍼블릭 클라우드불특정 다수에게 IT서비스를 인터넷을 통해 제공하는 형태프라이빗 클라우드기업이 시스템 자원을 직접 소유하고 자신들의 회사 전용의 클라우드로 사용하이브리드 클라우드퍼블릭과 프라이빗 클라우드를 활용에 따라 이점을 극대화 하여 혼용 활용하는 아키텍쳐서비스 모델사용자에게 인프라의 어느 계층까지 서비스 할 것인가에 따른 분류IasS(Infrastructure as a Service)물리적 자원(서버, 네트워크, OS, 스토리지 등의 서비스)를 가상화 하여 제공하고 관리장점 : 높은 자유도단점 : 가상 서버 하위 레벨에 대해서 고객이 접근하거나 제어 불가PasS(Platform as a Service)IasS에 .. 2024. 11. 5.
OS - CPU 스케줄링 ⌛CPU 스케줄링용어CPU 이용률(CPU Utilization)💡 전체 시스템 시간 중 CPU가 작업을 처리하는 시간의 비율CPU 이용률이 높을수록 효율(성능)이 좋다처리율(Throughput)💡 단위 시간 당 처리할 수 있는 프로세스의 양값이 클수록 성능이 좋다반환시간(Turnaround Time)프로세스가 처음 new 상태로 들어가서 terminated 상태로 나올 때까지의 시간짧을수록 성능이 좋다💡 작업 종료 시간 - 도착 시간대기시간(Waiting Time)💡 프로세스가 준비 큐(Ready Queue)에서 대기한 시간의 총합응답시간(Response Time)💡 요청 후 응답이 오기 시작할 때까지의 시간🗒️CPU 스케줄링 방식비선점(Nonpreemptive) 스케줄링이미 할당된 CPU를 .. 2024. 11. 5.
Web - 웹 브라우저 개념 🕸️웹 브라우저 개념웹 접근성(Web Accessability)장애인, 고령자 등이 웹사이트에서 제공하는 정보에 비장애인과 동등하게 접근하고 이해할 수 있도록 보장하는 것인적, 환경적 요인에 제약 없는 웹 정보 접근웹 호환성서비스 이용자 단말기의 하드웨어 및 소프트웨어 환경이 다른 경우에도 동등한 서비스를 제공하는 것웹 브라우저 버전, 종류에 관계없는 웹사이트 접근, 크로스 브라우징(Cross Browsing)웹 표준 준수를 통한 브라우저 호환성 확보반응형 웹(Responsive Web)한 번의 개발로 디스플레이 종류에 따라 화면 크기 및 해상도가 자동으로 조절돼 화면을 보여주는 방식장점 : 유지보수가 효율적이다, 사용자 기기에 구애를 받지 않는다단점 : 비용이 높다, 접근성이 떨어지거나 비효율적일 수.. 2024. 11. 5.
네트워크 - IPV6 전환 기술, IPV4 주소체계 및 예제풀이 IPv6 전환기술듀얼스택(Dual Stack, IPv4/IPv6)하나의 Device에서 IPv4와 IPv6를 모두 운영하여 제어, 통신할 수 있는 방식터널링(Tunneling, IPv6-IPv4-IPv6)네트워크 자체는 IPv4 네트워크지만 들어갈 때는 데이터가 캡슐화되고, 나갈 때는 IPv6 데이터로 전송(역캡슐화)되는 구조터널링 과정IPv6 디바이스 IPv6 헤더만 포함IPv4 네트워크를 거치며 IPv4 헤더를 추가(캡슐화, Encapsulation)IPv6 디바이스에게 전달할 때 IPv4 헤더를 떼고 전달(역캡슐화, Decapsulation)변환(Translation, IPv6 ↔️ IPv4)Translator를 통해 변환. 프로그램에서 실제로 헤더가 변환되어야 하기 때문에 지연이나 다른 문제들이 .. 2024. 11. 5.
데이터통신 - 소켓 프로그래밍 연결 단계 소켓 프로그래밍 연결 단계 2024. 11. 5.
728x90