전체 글233 git 동작원리 기본적으로 깃(Git) 프로젝트에 담겨 있는 데이터들은 파일 시스템 상에서의 스냅샷이라고 볼 수 있다 . 실제로 프로젝트를 커밋하여 적용할 때의 순간을 중요시한다는 특징이 있습니다. 파일 자체를 저장하기보다 수정 내역 자체를 저장한다. - Working Directory: 작업할 파일이 있는 디렉토리 입 - Staging Area: 커밋을 수행할 파일들이 올라가는 영역입니다. - Git Directory: Git 프로젝터의 메타 데이터와 데이터 정보가 저장되는 디렉토리입니다. 원격지에 있는 저장소(Remote Repository)에서 맨 처음에 클론(Clone)을 받으면, 자신의 컴퓨터에 해당 프로젝트가 통째로 다운로드가 된다. 이후에 자신이 수정한 내역을 다시 원격지 저장소까지 반영하려면 git add.. 2022. 10. 28. git 시작 깃(Git /ɡɪt/)이란? 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 스냅샷 스트림 기반의 분산 버전 관리 시스템이다. 또는 이러한 명령어를 가리킨다. 오픈 소스(Open Source)란? '공개된 소스코드'를 의미한다. 특정한 소프트웨어를 개발한 개발자의 권리를 지키면서 누구나 소스코드를 확인할 수 있도록 한다. 컨트리뷰션 이란? 말 그대로 기여한다는 의미이며 기능 추가, 보안 취약점 수정 등 뿐만 아니라 오타 수정, 번역, 의견 제시 등도 컨트리뷰션이라고 할 수 있다. 사실상 누구나 컨틔뷰션을 할 수 있다. 커미터(Committer)란? 실제로 누군가 컨트리뷰선을 하면, 해당 내용을 리뷰하고 실제 프로젝트에 반영할지를 결정하는 사람이다. 즉 특정한.. 2022. 10. 26. CORS 이슈 해결 CORS란? CORS를 해결해보자 프로젝트를 하면서 프론트에서 서버에서 제공한 API로 요청하자, CORS 에러가 발생했다. 지금까지 CORS에러를 해결하기만 하고 정확히 CORS가 무엇이고 어떻게 동작하는지 알지 못했다. 이번에 CORS가 어떻게 동작하고 CORS 에러를 해결하는 방법을 공부하였고 공부하면서 알게된 내용을 정래해보았다. CORS? Cross Origin Resource Sharing CORS는 한 도메인 또는 Origin의 웹 페이지가 다른 도메인 (도메인 간 요청)을 가진 리소스에 액세스 할 수 있게하는 보안 메커니즘이다. CORS는 서버와 클라이언트가 정해진 헤더를 통해 서로 요청이나 응답에 반응할지 결정하는 방식으로 CORS라는 이름으로 표준화 되었다. CORS는 최신 브라우저에서.. 2022. 10. 25. 5주차 미니 프로젝트를 시작하면서 정신이 없었다. Til도 작성 못했는데 그래도 하루에 하나씩은 꼭 올리고싶다. https://1sangcoder.tistory.com/150 CORS 이슈 해결 CORS란? CORS를 해결해보자 프로젝트를 하면서 프론트에서 서버에서 제공한 API로 요청하자, CORS 에러가 발생했다. 지금까지 CORS에러를 해결하기만 하고 정확히 CORS가 무엇이고 어떻게 동작하는지 1sangcoder.tistory.com 2022. 10. 24. 4주차 Spring Security + jwt 토큰을 일주일동안 한것 같다. 처음에 했을때는 감이 안왔는데 계속 하다보니 감이좀 잡힌것 같다. 이번주는 기본 CRUD까지 정리하고 다음주에 미니프로젝트에 들어가야할 것 같다. https://1sangcoder.tistory.com/m/145 Spring Security 작동 순서 1. http로 로그인 요청 2. 로그인 인증 요청이라면 UsernamePasswordAuthenticationFilter(이하 AuthencicationFilter)가 요청을 가로채 전달된 username, password 파라미터를 이용해 UsernamePasswordAuthenticationToken 인증 객 1sangcoder.tistory.com https://1sangcoder.. 2022. 10. 17. OSI 7계층, TCP 4계층 2022. 10. 17. Spring Security 작동 순서 1. http로 로그인 요청 2. 로그인 인증 요청이라면 UsernamePasswordAuthenticationFilter(이하 AuthencicationFilter)가 요청을 가로채 전달된 username, password 파라미터를 이용해 UsernamePasswordAuthenticationToken 인증 객체를 만든다. 3. 인증 객체를 인증하기 위한 AuthenticationManager 에 넘기고 인증을 위임한다. 4. AuthenticationManager 를 구현한 ProviderManager는 스프링 시큐리티가 기본적으로 제공하는 AuthenticationProviders에 인증 객체를 전달한다. 5. 인증에 사용되기 적합한 AuthenticationProvider 가 존재하면(여기는 D.. 2022. 10. 13. 스프링 입문 주차 과제1 PostResponseDto에서 @Builder 사용할때 @Getter도 같이 사용하는이유 @Gettor를 사용하지 않으면 response에서 응답이 제대로 넘어오지 못함 2022. 10. 13. 자바 상속 문제 답 public class JetAircraft extends Airplane{ private static final int NORMAL = 1; private static final int JETMODE = 2; public int flyMode = NORMAL; //1번 정답 @Override public void fly(){ if(flyMode == JETMODE){ System.out.println("초음속비행합니다."); }else{ super.fly(); } } //2번 정답 public int getNormal(){ return NORMAL; } public int getJetmode(){ return JETMODE; } } 3번 정답 = New JetAircraft(); 2022. 10. 10. 자바 상속 문제 Airplane.java(부모클래스) public class Airplane { public void land(){ System.out.println("착륙합니다."); } public void fly(){ System.out.println("일반비행합니다."); } public void takeOff(){ System.out.println("이륙합니다."); } } JetsAircraft.java(자식클래스) public class JetAircraft extends Airplane{ private static final int NORMAL = 1; private static final int JETMODE = 2; public int flyMode = NORMAL; //1번문제 //부모의 메서드(fl.. 2022. 10. 10. Web Service Architecture 1. Web Server는 웹 브라우저 클라이언트로부터 HTTP 요청을 받는다. 2. Web Server는 클라이언트의 요청(Request)을 WAS에 보낸다. 3. WAS는 관련된 Servlet을 메모리에 올린다. 4. WAS는 web.xml을 참조하여 해당 Servlet에 대한 Thread를 생성한다. (Thread Pool 이용) 5. HttpServletRequest와 HttpServletResponse 객체를 생성하여 Servlet에 전달한다. - 5-1. Thread는 Servlet의 service()메서드를 호출한다. - 5-2. service()메서드는 요청에 맞게 doGet() 또는 doPost() 메서드를 호출한다. - protected doGet(HttpServletRequest re.. 2022. 10. 10. 스프링 부트 동작 원리 1. 내장 톰캣 - 스프링에는 톰켓이 내장 되어있어서 따로 설치할 필요 없이 바로 실행가능 하다. A와 B가 서로 메세지를 주고 받기 위해서는 OS에서 제공하는 소켓이 필요하다. 예를들어 A가 5000번 포트번호로 최초의 연결 용도로 소켓을 오픈한다. B가 A의 IP주소와 포트번호를 통해5000번 포트에 연결을 성공하면, 무작위 포트 번호로 새로운 소켓을 만들고, 5000번 포트는 연결이 끊긴다. 이때 5000번 포트로 다른 사용자의 연결 요청을 계속 받기 위해서 새로운 포트와의 통신을 다중 스레드를 이용한다. 소켓 통신의 장점은 연결이 끊어지지 않는다는 점, 단점은 그 때문에 연결이 늘어날 수록 부하가 크다는 점이다. HTTP - 소켓 통신은 계속 연결되어 있기 때문에 사용자가 늘어남에 따라 부하가 커.. 2022. 10. 9. 자바 메모리 구조 1. 메모리 - 프로그램을 실행하기 위한 데이터 및 명령어를 저장하는 공간 * 메모리구조를 공부하는 이유 - 같은 기능의 프로그램이더라도 메모리 관리에 따라 성능이 좌우됨. - 메모리 관리가 되지 않은 경우 속도저하 현상이나 튕김 현상 등이 일어날 수 있음. - 한정된 메모리를 효율적으로 사용하여 최고의 성능을 내기 위함. 2. 자바 프로그램의 실행구조 - 프로그램이 실행되기 위해서는 windows나 linux같은 운영체제(OS)가 제어하고 있는 시스템의 리소스의 일부인 메모 리(RAM : 주기억장치)를 제어할수 있어야 한다. - java이전의 c같은 대부분의 언어로 만들어진 프로그램은 이러한 이유때문에 OS에 종속되어 실행되게 되어 있었다. - java프로그램은 JVM(Java Virtual Machi.. 2022. 10. 9. 3주차 Spring DI(의존성 주입) Ioc(제어권 역전) bean 에 대해서 정리해 보았다. https://1sangcoder.tistory.com/128?category=972158 Spring 서버에서 객체를 JSON으로 변환 후 응답하기 JSON 응답 클라이언트는 서버를 거쳐서 DB에 접근한다. 클라이언트가 DB에서 필요한 정보를 얻기 위해, 서버에게 데이터를 요청하면 서버에서는 클라이언트가 필요한 데이터 또는 그 데이터가 포 1sangcoder.tistory.com https://1sangcoder.tistory.com/131?category=972158 Memo api 구현 최대한 lombok 없이 구현해 보았다. Memo.java @Entity public class Memo extends Tim.. 2022. 10. 9. Spring IoC IoC = inversion of control : 제어권의 역전 일반적인 경우 의존성에 대한 제어권을 자기 자신이 가진다. 의존관계는 간단히 말해 new 라는 키워드를 통해 생성된다. public class Sample { private Samsung samsung = new Samsung(); } 의존성 역전(Inversion of Control) -Ioc란 inversion of Control의 약어로, 객체의 의존성을 역전시켜 객체 간의 결합도를 줄이고 유연한 코드를 작성 하게하여 가독성 및 코드의 중복, 유지보수를 편하게 할 수 있게 한다. SampleTest 라는 클래스에서 Samsung 객체를 생성한뒤 Sample 클래스의 생성자로 주입시켜준다. 여기서 Sample이 직접 Samsung을 생.. 2022. 10. 9. 이전 1 ··· 4 5 6 7 8 9 10 ··· 16 다음