Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[2주차] Clean_Code_3-4장_이준렬 #20

Closed
lee-JunR opened this issue Jun 9, 2024 · 4 comments
Closed

[2주차] Clean_Code_3-4장_이준렬 #20

lee-JunR opened this issue Jun 9, 2024 · 4 comments

Comments

@lee-JunR
Copy link
Contributor

lee-JunR commented Jun 9, 2024

Q1

주석으로 처리한 코드
주석으로 처리한 코드만큼 밉살스러운 관행도 드물다. 다음과 같은 코드는 작성 하지 마라!

이번 2주차의 4단원을 읽고 나서 살짝 당황했습니다. Toy Project를 만들 때마다 해당 코드를 로컬에서 실행하거나 배포 환경에서 실행할 때 포트 번호를 주석으로 관리했었기 때문입니다.

public class Application {
    public static void main(String[] args) {
        // Local 실행 시에는 아래 주석을 해제하고, 포트 번호를 8080으로 설정하세요.
        // SpringApplication.run(Application.class, args).setPort(8080);

        // 배포 환경에서 실행할 때는 아래 주석을 해제하고, 포트 번호는 8000으로 설정하세요.
        SpringApplication.run(Application.class, args).setPort(8000);
    }
}

이런식으로 말이에요! 하지만 이번 단원을 읽어도 어떻게 해결해야할지는 잘 와닿지 않습니다.

해당 부분을 해결 할 수 있는 방법이 있을까요? 아이디어 있으시면 남겨주시면 감사드리겠습니다!

@GaHee99
Copy link
Contributor

GaHee99 commented Jun 9, 2024

이 부분은 제 생각에 config파일로 관리하면 좋을 것 같아요,

만약 저라면 yml에 port관련해서 명시해놓고, 변수 명으로 주석을 풀어 나갈 것 같습니당

@Getter
@Configuration 
public class SpringEnvConfig {
   @Value("${spring.port.local)")
   private long  localPort; // 데이터 타입은 잘 모르겠네요, 

   @Value("${spring.port.dev)")
   private long  dev; // 데이터 타입은 잘 모르겠네요, 
}

이렇게 코드로 표현하는 방법 외에도, yml에서 env파일에 따라 port를 변경해서 실행할 수 있답니당!
제가 주로 사용하는 방법이에요~
https://velog.io/@stbpiza/Spring-Boot-%ED%99%98%EA%B2%BD-%EB%B6%84%EB%A6%AC%ED%95%98%EA%B8%B0

@chuseok
Copy link
Contributor

chuseok commented Jun 9, 2024

저도 가희님과 같은 생각입니다!
추가로 profile active를 사용해서 port 설정 또한 환경에 따라 나누는 방법도 참고해보시면 좋을 거 같아요

spring:
  config:
    activate:
      on-profile: dev
server:
  port: '8080'
spring:
  config:
    activate:
      on-profile: prod
server:
  port: '8081'

가희님이 올려주신 링크 들어가보니까 제가 똑같은 소리를 했네요!

@kjy-asl
Copy link
Contributor

kjy-asl commented Jun 10, 2024

저도 위 두 분과 같이 config 파일을 통해 spring profile을 나눠 환경을 분리 시키고,
application.yml

spring:
  profiles:
    active: dev

spring:
  profiles:
    active: local

application-dev.yml
application-local.yml
이런 방식으로 관리 했습니다.

@cheongwonyoung
Copy link

다른 분들이 설명하신 방법처럼 저도 config 파일 사용해서 진행하고 있습니다 !

@GaHee99 GaHee99 closed this as completed Jun 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants