if condition end if condition else end if condition elsif else end def multiploy(first, second) first.to_f * second.to_fend def divide(first, second) first.to_f / second.to_fend def mod(first, second) first.to_i % second.to_iend puts "Where do you want to do? 1) multiply 2) divide 3) subtract 4) find remainder"prompt = gets.chompputs "enter in your first number"first_number=gets.chompputs "Enter..
puts "Simple calculator"25.times {print "-"}puts "Enter the first Number"num_1=gets.chompputs "Enter the second Number"#gets.chomp는 String으로 받아온다.num_2=gets.chompputs "The first number multipled by the second number is #{num_1.to_i * num_2.to_i}" puts "나누기 : The first number division by the second number is #{num_1.to_i / num_2.to_i}" puts "더하기 : The first number plus by the second number is #{n..
안녕하세요 강정호입니다. 오늘은 루비에 대해서 공부 해보겠습니다. String concatenation# String concatenationsentence = "My name is jake"p sentence first_name = "Jake"last_name = "hello"puts first_name+" "+last_name Java와 마찬가지로 "+" 기호를 이용해서 단어와 단어를 연결할 수 있다. String interpolationfirst_name = "Jake"last_name = "hello" #String interpolationputs "My first name is haja and #{first_name} my last name is #{last_name}" String을 "+" 기..
안녕하세요 강정호입니다. 오늘 패스트캠퍼스에서 배우는 6번째 수업에 대해 포스팅 할게요 1교시- 프로그래밍이 무엇인가? 1) 요구사항을 아키텍쳐에 기반하여 구현하는 것2) 아키텍쳐의 중요성 : 프로그래머가 곧 아키텍트이다. 3) 알고리즘 문제 푸는 것은 어떤 아키텍쳐를 생각해서 구현하는 것과는 다르다알고리즘이 논리적인 사고 방식을 표현하는 것에는 적합하다. - 참조 아키텍쳐 : 비슷한 도메인으로 구현한 것에서 아키텍쳐를 모방해 온다.1) 우리한테 맞는 부분을 가져오고, 그렇지 않은 부분을 제외한다. - 개발 사이클을 짧게 잡자!1) 회원가입, 로그인을 2주동안 만들고 고객에게 보여주자.2) 고객이 보고, "이건 아닌데?" 하면서 피드백을 받는다.3) 나머지 2주 동안 다른 기능을 개발한다.4) 피드백을 ..
Jar 파일 만드는 방법- Intellij 우측에 Maven project 클릭.- Life Cycle에서 Package 클릭 --> 빌드- target 폴더의 jar 파일 생성- java -jar jar 이름을 실행. 커스터마이징 스타터 제작하기- starter 프로젝트- Stickershop 프로젝트 실행하기- import maven 프로젝트- Maven project - lifecylce : test는 실행 스킵하게 설정- life cycle package 더블클릭 : 자동으로 Q 클래스 빌드한다 아스키 아트 추가하기- http://patorjk.com/software/taag/#p=display&f=Graffiti&t=Type%20Something%20- resource 폴더 아래 banner.t..
안녕하세요 강정호입니다.오늘은 JPA N:M 관계 즉 다대다 관계에 대해서 공부해 볼게요. N:M 관계Table 측면Member와 Role은 N:M 관계이다. 테이블을 생성할 때는 다대다 관계를 이루면 안되기 때문에 두 테이블 사이에 복합키(member_id, member_role_id)를 가지는 테이블을 만들어 1대다 관계를 만들어 준다. Member 테이블//@ManyToMany(cascade = {CascadeType.ALL}) //우리가 사용하는 Role정보는 이미 DB에 저장되어 있다. @ManyToMany @JoinTable(name="member_member_role", joinColumns = @JoinColumn(name="member_id", referencedColumnName = "..
안녕하세요 강정호입니다.패스트 캠퍼스 스프링 부트 강의 4번째 수업에 대한 강의 내용을 적어보겠습니다. 오늘 학습 주제Spring Security를 이용.- 회원정보 (id, password)- Role에 대한 정보. - 어떤 회원이 관리자 권한, 일반 권한을 가지는 것 회원 ---------> Role관계? 1명의 회원은 여러 Role을 가질 수 있다1개의 Role은 여러 회원을 가질 수 있다.--> 즉 다대다 관계이다. 다대다 관계에서는 Join table을 사용한다. 회원가입로그인로그아웃 @ManyToMany@JoinTable : 다대다 관계에서 조인 관계를 맺을 때 복합키를 가지는 테이블이 필요하다.ex) @JoinTable(name="member_member_role") Board가 카테고리 관..
안녕하세요 강정호입니다. 오늘은 영속성 컨텍스트에 대해 공부해 볼게요.JPA를 이해하기 위해서는 영속성 컨텍스트와 엔티티 매니저에 대한 이해가 필수입니다. 영속성 컨텍스트란?- Server side와 Database 사이에 엔티티를 저장하는 논리적인 영역이라고 할 수 있다. 엔티티 매니저로 엔티티를 저장하거나 조회하면 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보관하고 관리한다. - 영속성 컨텍스트는 엔티티 매니저(Session)를 생성할 때 하나 만들어진다. 그리고 엔티티 매니저(Session)을 통해서 영속성 컨텍스트에 접근할 수 있고 영속성 컨텍스트를 관리할 수 있다. 영속성 컨텍스트가 왜 좋은가?1차 캐시- Map 객체로 저장 : 엔티티를 식별자 값(@Id 맵핑)으로 구분한다. Key-value로..
안녕하세요 강정호입니다. 오늘을 스프링 부트에서 엔티티를 맵핑하는 방법과 테스트 코드 작성에 대해 알아볼게요. 이렇게 Category와 Board는 다음과 같이 1:N 관계를 맺고 있습니다. 1개의 카테고리는 여러개의 게시물을 갖는 것이지요. 그렇다면 엔티티는 다음과 같이 생성됩니다. Board 엔티티@Entity @Table(name = "board") @Getter @Setter public class Board { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private String title; private String content; private int readCount..
안녕하세요 강정호입니다. 오늘은 JPA에 대해 공부 해볼게요. JPA를 사용하는 이유?SQL 중심적인 개발에서 객체 중심으로 개발생산성과 유지보수성패러다임의 불일치 해결객체 지향성과 SQL의 불일치.성능 : 이것은 확실하지 않다. 1차 캐시와 관련된 것이다.데이터 접근 추상화와 벤더 독립성JPA를 사용하게 되면 SQL이 자동으로 각 DBMS(MySQL, Oracle)에 맞게 생성되어 독립적으로 된다. 영속성 컨텍스트(Persistence Context)- Entity를 영구 저장하는 환경 - 논리적인 개념에 가깝다. 영속성 컨텍스트는 엔티티 매니저를 생성할 때 하나 만들어진다. 그리고 엔티티 매니저는 영속성 컨텍스트에 접근할 수 있고, 영속성 컨텍스트를 관리할 수 있다.- 엔티티 매니저 : 영속적 환경을..
1. Spring Boot datasource 설정 검색 spring.datasource.initialization-mode= always어플리케이션이 시작될 때 직접 데이터 초기화 하는 것. import.sql 커넥션풀보다 요청량이 많으면 클라이언트들이 대기해야 한다. 커넥션 JPA를 사용하는 이유- 패러다임의 불일치 해결 : 객체지향과 SQL의 불일치- 성능 : 이건 확실하지 않다.- 데이터 접근 추상화와 벤더 독립성 : JPA를 사용하면 SQL이 각 DBMS(MySQL, Oracle)에 따라 만들어져서 독립적이다. 영속성 컨텍스트 트랜잭션- PlatformTransactionManager가 트랜잭션을 관리해 주는 역할을 한다.- 최초에 SELECT을 할 때는 엔티티 매니저가 SQL문을 만들어서 DB..
안녕하세요 강정호입니다. 오늘은 Spring의 트랜잭션에 대해 공부해 볼게요. 트랜잭션이란?트랜잭션은 여러 작업이 구성되어 있는 하나의 작업 단위입니다. 예를 들어서 쉽게 설명 해볼게요.출금을 하려면 여러가지 일들이 같이 순차적으로 이루어져야 해요.1) 계좌 잔액 조회2) 출금하려는 금액과 계좌 잔액 비교3) 출금4) 로깅이렇게 4가지 작업이 모두 수행되어야 합니다. 이 4가지 작업을 합한 것이 하나의 트랜잭션 단위가 되는 것입니다. 트랜잭션의 특징은 4가지의 작업 중 1개만 에러가 발생할 경우 바로 원상 복구를 해야합니다. 그것을 rollback 이라고 합니다. 4가지 작업이 모두 정상적으로 이루어졌다면 commit을 합니다. 즉, 트랜잭션 관리는 이러한 작업들의 성공여부에 따라 원상 복구 또는 적용하..
안녕하세요 강정호입니다.오늘은 HandlerInterceptorAdapter에 대해 공부해 보겠습니다. 인터셉터란?클라이언트의 요청이 Controller로 가기 전에 중간에 요청을 가로채서 검사하는 모듈입니다. 예를 들어 클라이언트의 요청이 들어왔는데, 로그인을 하지 않아 Session이 생성되지 않았다면 Interceptor가 체크를 하고 로그인 페이지로 돌려보내주게 됩니다. 인터셉터 구현 HandlerInterceptorAdapter에서 제공하는 메서드는 4가지입니다. PreHandle(HttpServletRequest request, HttpServletResponse response, Object handler)컨트롤러(즉 RequestMapping이 선언된 메서드 진입) 실행 직전에 동작.반환 ..
안녕하세요 오늘은 Spring 프레임워크에서 사용하는 매개변수 타입에 대해 알아볼게요. 이 포스팅은 잘 정리된 다른 분의 글이 있어서 가져왔습니다. - 머루의 개발 블로그- 컨트롤러 메서드의 파라메터 타입 이 포스팅의 출처는 머루의 개발 블로그입니다. 오늘 소개할 내용은 Spring의 Controller에서 사용할 수 있는 파라미터 타입들을 알아보도록 하자. . Spring에서 Controller로 받을 수 있는 파라미터들이 다양한 타입들이 존재하는데 이는 Object 혹은 어노테이션등으로 선언하면 자동으로 Spring이 그에 맞게 변환해주고 있다. 다 알아볼 수 는 없겠지만 자주 사용하는 부분 위주로 최대한 많이 살펴보도록 하자.필자의 경우에는 Controller에서 servlet API를 거의 사용하..
안녕하세요 강정호입니다. 오늘은 스프링의 HandlerMethodArgumentResolver에 대해서 알아볼게요 HandlerMethodArgumentResolver HandlerMethodArgumentResolver 인터페이스의 역할은 컨트롤러에서 파라미터를 바인딩 해주는 역할을 한다. 예를 들어 특정 클래스나 특정 어노테이션등의 요청 파라미터를 수정해야하거나, 또는 클래스의 파라미터를 조작 혹은 공통적으로 써야하는 파라미터들을 바인딩 해주는 역할이다.아래 소스를 보며 설명 드릴게요. 위의 코드에서 보면 @GetMapping으로 파라메터를 받는다. 하지만 ServerInfo 파라메터는 뷰 페이지로부터 받은 파라메터가 아니다. 그럼 어디서 받은 것일까?? ServerInfo 클래스는 다음과 같이 구성..
Spring Bean Container 안녕하세요 오늘은 스프링 빈 컨테이너에 대해서 알아보겠습니다. 스프링 빈 컨테이너 역할 - 스프링 객체를 관리한다 : 컨테이너가 스스로 객체를 생성한다 1) @ComponentScan : @Component가 붙은 클래스들을 읽어서 객체로 생성한다2) @Bean : @Bean을 이용하여 개발자가 생성하는 코드를 작성한다. Java Configure - 이전 버전의 스프링에서는 XML로 설정을 하였으나, 현재 스프링 버전에서는 어노테이션으로 지원한다. 그렇다면 우리가 메인 실행파일에서 보는 @SpringBootApplication이란 무엇일까?웹 어플리케이션을 실행할 때 자주 보지만 그 의미에 대해서는 깊이 생각한 적이 없었다. @SpringBootApplicatio..
Spring Boot를 이용한 개발 준비 - JDK 8을 설치 : java -version - Maven or Gradle 빌드도구 설치 : Intellij에 내장되어 있다. 설치를 안해도되지만 설치하는게 편리함1) Maven - CoC(Convention over Configuration) : 이미 정해져 있는 폴더, 빌드 규칙에 따라 빌드 해주는 것. 2) 메이븐이든 그래들이든 디렉토리 구조는 동일하다. - Git 설치, Github 계정 생성. - Intellij : https://www.jetbrains.com/idea/download/ - Spring Boot 프로젝트 생성- https://start.spring.io/ : Spring 프로젝트 사이트- Intellij1) Open : 인텔리제이..
- Total
- Today
- Yesterday
- front
- 월급쟁이부자들
- 도커
- Inception
- push_back
- 폭포수
- 항해솔직후기
- docker
- 깃허브
- 파라메터
- resize
- 부동산공부
- 유즈케이스
- 관계대수
- 2023년
- 월부닷컴
- pop_back
- 항해플러스후기
- 개발자 회고
- GIT
- 재테크공부
- Spring boot
- 열반스쿨기초반
- 내년은 빡세게!!
- ```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````
- 항해플러스백엔드
- github
- 인셉션
- Use case
- 깃
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |