본문 바로가기
728x90

개발/ETC53

프로세스와 스레드 1. 개념 - 프로세스는 컴퓨터에서 실행되고 있는 프로그램. - 스레드는 프로세스 내 작업의 흐름. - 프로그램이 메모리에 올라가면 프로세스가 되는 인스턴스화가 발생. - 이후 운영체제의 CPU 스케줄러에 따라 CPU가 프로세스를 실행. 2. 프로세스와 컴파일 과정 - 프로세스는 프로그램으로부터 인스턴스화 된 것. - 프로그램은 컴파일러가 컴파일 과정을 거쳐 컴퓨터가 이해할 수 있는 기계어로 번역되어 실행될 수 있는 파일이 되는 것을 의미.(C언어 기반의 프로그램을 말함) 전처리: 소스 코드의 주석을 제거하고 #include 등 헤더 파일을 병합하여 매크로를 치환. 컴파일러: 오류 처리, 코드 최적화 작업을 하며 어셈블리어로 변환. 어셈블러: 어셈블리어는 목적 코드로 변환. 이때 확장자는 운영체제마다 다.. 2023. 1. 29.
디자인 패턴 (4) 1. MVC 패턴 - MVC 패턴은 모델, 뷰, 컨트롤러로 이루어진 디자인 패턴 - 애플리케이션의 구성 요소를 세 가지 역할로 구분하여 개발 프로세스에서 각각의 구성 요소에만 집중해서 개발할 수 있음 - 재사용성과 확장성이 용이하다는 장점 - 애플리케이션이 복잡해질수록 모델과 뷰의 관계가 복잡해지는 단점 - 모델 모델은 애플리케이션의 데이터인 DB, 상수, 변수 등을 말함 - 뷰 1. 뷰는 input, checkbox, textarea 등 사용자 인터페이스 요소를 말함 2. 변경이 일어나면 컨트롤러에 이를 전달 - 컨트롤러 1. 컨트롤러는 하나 이상의 모델과 하나 이상의 뷰를 잇는 다리 역할 2. 이벤트 등 메인 로직 담당 3. 모델과 뷰의 생명주기 관리 4. 모델이나 뷰의 변경 통지를 받으면 이를 해석.. 2023. 1. 6.
디자인 패턴 (3) 1. 프록시 패턴과 프록시 서버 - 프록시 패턴 프록시 패턴은 대상 객체에 접근하기 전 그 접근에 대한 흐름을 가로채 대상 객채 앞단의 인터페이스 역할을 하는 디자인 패턴 객체의 속성, 변환 등을 보완하며 보안, 데이터 검증, 캐싱, 로깅에 사용 이는 프록시 객체로 쓰이기도 하지만 프록시 서버로도 활용 * 프록시 서버에서의 캐싱: 캐시 안에 정보를 담아두고, 캐시 안에 있는 정보를 요구하는 요청에 대해 다시 저 멀리 있는 원격 서버에 요청하지 않고 캐시 안에 있는 데이터를 활용하는 것을 말한다. -> 불필요하게 외부와 연결하지 않기 때문에 트래픽을 줄일 수 있다는 장점이 있다. - 프록시 서버 프록시 서버는 서버와 클라이언트 사이에서 클라이언트가 자신을 통해 다른 네트워크 서비스에 간접적으로 접속할 수 .. 2023. 1. 4.
디자인 패턴 (2) 1. 전략 패턴 - 전략 패턴은 정책 패턴이라고도 한다. - 객체의 행위를 바꾸고 싶은 경우 직접 수정하지 않고 전략이라고 부르는 캡슐화한 알고리즘을 컨텍스트 안에서 바꿔주면서 상호 교체가 가능하게 만든느 패턴 - Java의 전략 패턴 예시 public class HelloWord { public static void main(String[] args) { ShoppingCart cart = new ShoppingCart(); Item A = new Item("item1", 100); Item B = new Item("item2", 200); cart.addItem(A); cart.addItem(B); // pay by A Card cart.pay(new ACard("test@email.com", "hi.. 2023. 1. 3.
디자인 패턴 (1) 1. 개념 - 디자인 패턴이란 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 '규약' 형태로 만들어 놓은 것 2. 싱글톤 패턴 - 싱글톤 패턴은 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴 - 하나의 클래스를 기반으로 여러 개의 개별적인 인스턴스를 만들 수 있지만, 그렇게 하지 않고 하나의 클래스를 기반으로 단 하나의 인스턴스를 만들어 이를 기반으로 로직을 만드는 데 쓰이며, 보통 데이터베이스 연결 모듈에 많이 사용 - 하나의 인스턴스를 만들어 놓고 해당 인스턴스를 다른 모듈들이 공유하며 사용하기 때문에 인스턴스를 생성할 때 드는 비용이 줄어드는 장점이 있지만, 의존성이 높아진다는 단점이 있음 - JS에서 싱글톤 패턴 예시 const obj .. 2023. 1. 2.
공공데이터 API 사용해보기 공공데이터 API를 이용해보자 이 많은 데이터로 간단한 프로젝트를 만들 수 있을 것 같다. 그래서 그 과정에서 공공 데이터 API를 어떻게 사용하는지 알아보았다. 1. 회원가입을 한다. 회원가입을 해야 사용할 수 있다. 회원가입 후 로그인하여 공공데이터 찾기에서 아무 데이터나 찾아본다. 예시로 코로나를 검색해봤더니 2. 데이터를 선택한다. 우리는 파일데이터보단 오픈API가 사용하기 편하니, 선택하여 아무거나 클릭해본다. 나는 제일 첫번째 데이터를 선택했다. 안심식당 정보를 사용해보자 3. 사용신청을 하자 url을 클릭하여 들어가서 오른쪽에 있는 '오픈 API 신청'을 클릭한다. 하필 고른게 농림축산 식품이라 이쪽에도 회원가입을 해야한다. 난 로컬에서 사용할 것이므로 로컬IP를 기입했다. 오픈API 신청을.. 2022. 8. 25.
Git 커밋 제거하기 회사 코드를 다시 이전 버전으로 돌릴 일이 생겼다.(하나 하나 수정하기엔 너무 많았다.) 인텔리제이를 사용했는데, 인텔리제이는 Git과 연동이 되어있어서 사용하기 편했다. git 로그 목록 중 원하는 버전을 클릭하여 마우스 오른쪽 버튼에서 Reset Current Branch to Here...(현재 브랜치를 여기로 재설정) 클릭 후 Hard, Reset 순서로 클릭하면 되돌아간다. 명령어로도 가능하다. git reset --hard HEAD^ : 바로 전으로 돌아감 git reset --hard HEAD~n : n만큼 전으로 돌아감 이후 cmd창 켜서 프로젝트가 있는 경로에 가서 강제 커밋해준다. git push origin master -f 2022. 8. 2.
SMTP 서버에 보안 연결이 필요하거나 클라이언트가 인증되지 않았습니다. 서버 응답: 5.7.0 Authentication Required. Learn more at gmail을 이용한 메일 서비스가 어느 순간 에러를 뱉으면서 되지 않았다. 아무래도 구글 정책에 변화가 있던거 같아서 구글링 해본 결과 2단계 인증을 사용해서 앱 비밀번호를 생성해서 개발한 애플리케이션의 smtp 설정 쪽에 비밀번호 대신 앱 비밀번호를 넣어주면 된다고 해서 진행했다. 성공! 2022. 7. 6.
728x90