본문 바로가기

웹 개발

(60)
[Spring 기초] 스프링 웹 개발 기초 스프링 웹 개발 기초정적 컨텐츠정적 컨텐츠는 서버에서 특별한 처리 없이 파일을 웹 브라우저에 그대로 내려주는 것을 의미한다. resources/static 경로에 hello-static.html 파일을 생성해보자 . 정적 컨텐츠 입니다. => 정적 파일이 그대로 반환된다.     * 인프런 '스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술' 강의를 참고하여 작성했습니다.
[Spring 실습] View 환경설정 View 환경설정스프링 부트는 resources/static/index.html을 만들면 welcome page로 제공한다. 1. resources/static 에 index.html 파일을 생성하자. Hellohello 2. 서버를 재실행해보자. => 자세히 알아보고 싶으면 https://spring.io/ => project => Spring boot 에 문서를 참고하자.  thymeleaf https://www.thymeleaf.org/ ThymeleafIntegrations galore Eclipse, IntelliJ IDEA, Spring, Play, even the up-and-coming Model-View-Controller API for Java EE 8. Write Thymeleaf i..
[Spring 실습] 프로젝트 생성 프로젝트 생성1. start.spring.io 접속   2. 인텔리제이에서 생성한 파일을 오픈해보자.  3. 실행하고 localhost:8080에 접속해보자.   * 인프런 '스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술' 강의를 참고하여 작성했습니다.
[Spring] Entity 클래스와 JpaRepository JPA를 개발에 사용하기 위해서는 두 가지 코드가 필요하다. JPA를 통해서 관리하게 되는 객체를 위한 엔티티 클래스 엔티티 객체들을 처리하는 기능을 가진 Repository 실습 Entity 클래스 작성 @Getter @ToString @Entity @Table(name = "user") public class User { @Id private @Column(length = 100) String user_id; // 유저 고유번호 @Setter @Column(nullable = false, length = 20) private String user_name; // 유저 닉네임 @CreatedDate @Column(nullable = false) private LocalDateTime write_date..
[Spring] Spring Data JPA JPA(Java Persistence API) JPA 는 Java 언어를 통해서 데이터베이스와 같은 영속 계층을 처리하고자 하는 스펙 ORM을 Java 언어에 맞게 사용하는 스펙 ORM(Object Relational Mapping) 객체지향 패러다임을 관계형 데이터베이스에 보존하는 기술 객체지향 패러다임을 관계형 패러다임으로 매핑해주는 개념 Spring Data JPA와 JPA 스프링 부트는 JPA 구현체 중에서 'Hibernate'라는 구현체를 이용 Hibernate '오픈소스'로 ORM을 지원하는 프레임워크 단독으로 프로젝트에 적용이 가능한 독립된 프레임워크. 스프링부트가 아닌 스프링만을 사용한다고 해도 Hibernate와 연동해서 JPA를 사용할 수 있다. Spring Data JPA는 Hiber..
[C#] 비동기 프로그래밍_스레드 동기 num이라는 변수를 선언해서 10만씩 더하는 프로그램. 두 개의 스레드를 생성하여 결과값은 20만이 나올 것으로 예상. public static void Run() { int num = 0; Thread t1 = new Thread(() => { for (int i=0; i { for (int i = 0; i < 100000; i++) { num++; } }); t2.Start(); t1.Join(); t2.Join(); Console.WriteLine(num); } 결과 왜 결과값이 20만이 아닐까? 크리티컬 섹션 : 여러 스레드가 동시에 동일한 변수에 접근하면서 문제가 발생...
[C#] 비동기 프로그래밍_프로세스, 스레드 프로세스 : 메모리에 적재된 현재 실행중인 프로그램 스레드 : 프로세스 내에서 명령들의 실행 흐름 단위 public static void Run() { Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("192.168.31.1"), 17841); serverSocket.Bind(endPoint); serverSocket.Listen(1000); while (true) { Socket clientSocket = serverSocket.Accept(); Console.WriteLine(cl..
[C#] Nagle 알고리즘 네트워크 상의 패킷 수를 줄임으로써 네트워크 효율성을 높이는 알고리즘 1byte를 보낸다 해도 실제로는 여러 header 정보가 추가되어 수십 바이트를 보내게 된다. 그러므로 1byte를 여러 번 보내는 것 보다 한번에 여러 byte를 보내는 것이 효율적 상대방으로부터 ack를 받고 데이터를 전송 패킷이 줄어들기 때문에 네트워크 효율이 증가하지만 ack를 대기해야 하므로 전송속도가 느리다.